题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param target int整型
* @param array int整型二维数组
* @param arrayRowLen int array数组行数
* @param arrayColLen int* array数组列数
* @return bool布尔型
*/
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
int colLen = *arrayColLen; // 获取二维数组的列数
if(target < array[0][0] || target > array[arrayRowLen - 1][colLen - 1]) return false;
int row = 0, col = colLen - 1;
while(row <= arrayRowLen - 1 && col >= 0) {
if(array[row][col] < target) row++; // 如果右上角的元素比target更小,说明目标元素在下一行及以下
else if(array[row][col] > target) col--; // 如果右上角元素比target更大,说明目标元素在前一列或之前
else return true; // 找到目标元素
}
return false;
}
查看7道真题和解析