我正在寻找能够浏览2D数组(矩阵)的算法或代码,并检查每行是否有不同的值。 如果值是不同的,我们返回1,否则为0
一个例子更好:
0 1 2 3
0 2
1 2 4
2 6
3 1
在0; 2的情况下,我们得到值2 在案例2; 3中我们有值6
在第1行的示例中,我们有2个值(1; 2和1; 3):2和4。 2和4不相等,我们可以退出循环并返回1
0 1 2 3
0 2 2
1 1 1
2 6
3 4
在另一个例子中,在第一行中,所有值都等于2,所以我们进入第二行,所有值都等于1,我们进入第三行,所有值等于6,并且最后一行,所有值都等于4,所以我们返回0
我真的不知道我能以什么方式做到这一点
提前感谢您的帮助
祝你好运
答案 0 :(得分:0)
尝试使用时间复杂度为O(N * M)的解决方案
//N = Number of rows
//M = Number of cols
//arr is the 2D array
for (int i = 0; i < N; i++) {
int curr = 0;
for (int j = 0; j < M; j++) {
if (arr[i][j] != 0) {
if (curr == 0) {
curr = arr[i][j];
} else if (arr[i][j] != curr) {
//This row has different values
return 1;
}
}
}
}
return 0; //All rows have the same value