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            }

因为是一个二维数组,所以分别定义行和列,根据题目要求,我们定义初始点为左下角的点,目标值比它小就向上找,比它大就向右找,比较方便遍历。

注意:一定要设置越界条件 条件很简单,行和列别超出行数和列数即可

这道题还是比较简单的,只是单纯的数组遍历,题目条件也已经给出了递增,找好遍历的方向和越界条件即可

posted @ 2020-03-30 15:26  前端攻城狮4536251  阅读(686)  评论(0)    收藏  举报