JS 剑指Offer(二)二维数组中的查找
04.在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
1 var findNumber = function(matrix,target){ 2 if(matrix.length == 0){ 3 return false 4 } 5 let x = 0 6 let y = matrix.length - 1;//这里y是行数,x是列数 7 8 //设置越界条件 终止条件 9 while(x<matrix[0].length && y>=0){ 10 if(matrix[y][x] > target){ 11 y-- 12 }else if(matrix[y][x] < target){ 13 x++ 14 }else{ 15 return true,[y+1,x+1] 16 } 17 } 18 return false 19 }
因为是一个二维数组,所以分别定义行和列,根据题目要求,我们定义初始点为左下角的点,目标值比它小就向上找,比它大就向右找,比较方便遍历。
注意:一定要设置越界条件 条件很简单,行和列别超出行数和列数即可
这道题还是比较简单的,只是单纯的数组遍历,题目条件也已经给出了递增,找好遍历的方向和越界条件即可
浙公网安备 33010602011771号