题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
从左下角搜索到右上角(反过来也可以,原理一样)。因为数组从上到下、从左到右是有序的,所以如果当前查找的数大于target,那么其上方的数也一定会大于target;如果当前查找的数小于target,那么其左边的数也一定会小于target。
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
int m = arrayRowLen - 1, n = 0;
while (m >= 0 && n < *arrayColLen) {
if (array[m][n] == target) return true;
else if (array[m][n] > target) m--;
else n++;
}
return false;
}
