C++ 如何在二维数组中查找不同的元素
有谁能给我推荐一种更快的方法,在给定起始和结束位置的二维矩阵中找到不同元素的数量。。(矩阵元素小于20) 说矩阵是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
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更快..为什么你认为这个代码很慢?