题解 | #二维数组中的查找#TOP18

思路:
1.二分法,从矩阵右上角开始,如果这个数比target大,那么target位于该数下面,行数向下偏移,即增加。反之如果小,那说明这个数在当前数的左边,列数减小,即列数减1
2.注意行数和列数不要搞错了,矩阵行数等于数组array.length,列数等于array[0].length

    public boolean Find(int target, int [][] array) {
        if(array == null ||array.length == 0 || array[0].length == 0){
            return false;
        }
        //
        int cols = array[0].length;
        int rows = array.length;
        int i = 0, j = cols-1;
        while(i < rows && j >= 0){
            if(target == array[i][j]){
                return true;
            }else if(target > array[i][j]){
                i++;
            }else{
                j -- ;
            }
        }
        return false;
    }
    
}
面试必刷TOP101 文章被收录于专栏

面试必刷TOP101

全部评论

相关推荐

风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务