剑指Offer 04. 二维数组中的查找
方法一:二叉搜索树
while中的条件包含了边界,且必须包含边界,因为可能当i或j在边界时仍不能满足条件,需要在边界那一行继续搜索。
且包含边界可以遍历所有情况,若没有找到target也不会有遗漏,所以可以直接在循环中写完所有情况,若循环结束后仍没有返回true,则应返回false。
1 /** 2 * @param {number[][]} matrix 3 * @param {number} target 4 * @return {boolean} 5 */ 6 var findNumberIn2DArray = function(matrix, target) { 7 if(matrix.length == 0 || matrix[0].length == 0) return false; 8 let i = matrix.length - 1, j = 0; 9 while(i >= 0 && j < matrix[0].length) { 10 if(matrix[i][j] == target) { 11 return true; 12 }else if (matrix[i][j] > target) { 13 i--; 14 }else { 15 j++; 16 } 17 } 18 return false; 19 };

#
浙公网安备 33010602011771号