剑指Offer JZ1-二维数组中的查找

本文介绍了一个二维整数数组查找算法,该数组按行和列递增排序。从左下角开始,通过比较目标值与当前值,根据大小关系调整搜索方向。当找到目标值时返回true,否则返回false。提供了详细的代码实现,并邀请读者分享自己的思路和建议。同时,博主分享了算法解析和JDK1.8源码的学习资源。
摘要由CSDN通过智能技术生成

二维数组中的查找

题目描述

在一个二维整数中(每个一维整数的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序进行排序。请完成一个函数,输入这样的一个二维尺寸和一个整数,判断数组中是否包含该整数。

思路描述

我们利用从左到向左向右,从上到下递增。特点的
我们从左下角开始查找。
如果目标值大于当前值,值当前则向右移动注意防止越界,如果越界,则说明没有找到,返回假
如果目标值小于当前值,当前值则向上移动。注意防止越界,如果越界,则说明没有找到,返回假
否则说明找到了返回真。

代码实现

    public boolean Find(int target, int [][] array) {
        int m = array.length;
        int n = array[0].length;
        int row = m - 1;
        int col = 0;
        while(row >= 0 && col < n){
            if(target > array[row][col]){
                col++;
            } else if(target < array[row][col]) {
                row--;
            } else {
                return true;
            }
        }
        return false;
    }

大家有好的想法和思路欢迎和博主一起探讨,欢迎大家指出博主有不足的地方,欢迎评论,点赞,收藏!

我们大家共同进步!

博主的github 中整理了相关的JDK1.8的源码浅析
JDK 1.8源码浅析
以及博主所刷过的算法的解析,有兴趣可以去踩踩。
算法解析
另外附上博主的 github链接,还有一个人脸识别项目可供借鉴
人脸识别项目

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值