Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在二维数组中查找不同的元素_C++ - Fatal编程技术网

C++ 如何在二维数组中查找不同的元素

C++ 如何在二维数组中查找不同的元素,c++,C++,有谁能给我推荐一种更快的方法,在给定起始和结束位置的二维矩阵中找到不同元素的数量。。(矩阵元素小于20) 说矩阵是 1 2 3 4 5 6 4 2 1 起始点(1,1)…结束点(3,2),则ans将为B4。。i、 e 1,2,4,5。。 下面的方法似乎很慢 #include<iostream> using namespace std; main() { int n,a[301][301],b[12],count,x1,x2,y1,y2,i,j

有谁能给我推荐一种更快的方法,在给定起始和结束位置的二维矩阵中找到不同元素的数量。。(矩阵元素小于20) 说矩阵是

     1 2 3
     4 5 6 
     4 2 1
起始点(1,1)…结束点(3,2),则ans将为B4。。i、 e 1,2,4,5。。 下面的方法似乎很慢

#include<iostream>
using namespace std;
main()
{
    int n,a[301][301],b[12],count,x1,x2,y1,y2,i,j;
    unsigned long long q;
    cin>>n;
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            cin>>a[i][j];
    cin>>q;
    while(q--)
        {
            count=0;
            for(i=0;i<12;i++)
                b[i]=0;
            cin>>x1>>y1>>x2>>y2;
            for(i=x1-1;i<=x2-1;i++)
                for(j=y1-1;j<=y2-1;j++)
                    b[a[i][j]]++;
            for(i=0;i<12;i++)
                {
                    if(b[i])
                        count++;
                }
            cout<<count<<"\n";
        }
    return 0;
}
#包括
使用名称空间std;
main()
{
int n,a[301][301],b[12],计数,x1,x2,y1,y2,i,j;
无符号长q;
cin>>n;
对于(i=0;ia[i][j];
cin>>q;
而(q--)
{
计数=0;
对于(i=0;i>x1>>y1>>x2>>y2;

因为(i=x1-1;我养成了总是在循环体和if周围加括号的习惯。有一天你会感谢我的。谢谢..我会尽力的rmmbr@Barmar-戴背带是个好主意。防止裤子缠在脚踝上被抓住。会用其他数据结构来回答这个问题吗…(第1部分或2d数组除外)b更快..为什么你认为这个代码很慢?