leetcode——搜索二维矩阵II(java)

编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。

  • 每列的元素从上到下升序排列。

示例 1:

复制代码
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例 2:

复制代码
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

解题方法:(排除法+双指针)

1.经过对示例的分析,我们可以清晰的分析出每一次判断我们可以先检查改行的末尾元素与target的差距。

  • 如果相等,直接返回true

  • 如果小了,直接移动指针到下一行。

  • 如果大了,我们移动指针向左走。

java 复制代码
class Solution {
    public boolean searchMatrix(int[][] matrix, int target) {
        int i = 0; 
        int j = matrix[0].length - 1;
        while (i < matrix.length && j >= 0) {
            if (matrix[i][j] == target) {
                return true;
            } else if (matrix[i][j] < target) {
                i++;
            } else {
                j--;
            }
        }
        return false;
    }
}
相关推荐
小楼v7 小时前
如何实现AI生成应用部署功能
java·后端·ai·部署
望未来无悔7 小时前
系统学习算法 专题十九 优先级队列(堆)
java·算法
啊阿狸不会拉杆7 小时前
《机器学习导论》第3章 -贝叶斯决策理论
人工智能·python·算法·机器学习·numpy·深度优先·贝叶斯决策理论
小虾米 ~7 小时前
JAVA引用类型
java·开发语言
阿蔹7 小时前
力扣面试题二Python
python·算法·leetcode·职场和发展
星辰_mya7 小时前
Elasticsearch之中
java·服务器·数据库
fengxin_rou8 小时前
[Redis从零到精通|第三篇]:缓存更新指南
java·数据库·redis·spring·缓存
九转成圣8 小时前
告别肉眼解析!Java 递归实现 JSON 全路径自动化探测工具
java·自动化·json
_运维那些事儿8 小时前
skywalking链路追踪
java·运维·ci/cd·软件构建·skywalking·devops
范纹杉想快点毕业8 小时前
状态机设计模式与嵌入式系统开发完整指南
java·开发语言·网络·数据库·mongodb·设计模式·架构