如何在二维数组中找到不同的元素

时间:2013-12-15 11:02:00

标签: c++

任何人都可以建议我在2-d矩阵中找到不同元素数量的更快方法,其中给出了凝视和结束位置..(矩阵元素小于20) 说矩阵是......

     1 2 3
     4 5 6 
     4 2 1

起点(1,1)..结束(3,2)然后ans将b 4 ..即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;
}

0 个答案:

没有答案