21.搜索二维矩阵 II

javascript 复制代码
var searchMatrix = function (matrix, target) {
    if (!matrix || !matrix.length) return false
    while(matrix.length > 0 && matrix[0].length > 0) {
        let n = matrix[0].length - 1;
        if (target === matrix[0][n]) return true
        if (target > matrix[0][n]) {
            matrix.shift()
        } else {
            matrix[0].pop();
        }
    }
    return false
};

解题思路

如果当前行的最后一个都比target小,说明肯定不在这一行,如果找遍整行都没找到,说明不存在这个数

详细解法

1.判断第一行的最后一个数是否大于目标值,如果小于目标值,说明肯定不在这一行,直接舍弃这一行

2.如果大于目标值,说明就在这一行之中,只要一直判断最后一个数是不是即可,不是直接舍弃

3.如果整行都没有,即全部舍弃了,说明没有这个数

相关推荐
一点一木39 分钟前
深度体验TRAE SOLO移动端7天:作为独立开发者,我把工作流揣进了兜里
前端·人工智能·trae
天外飞雨道沧桑1 小时前
TypeScript 中 omit 和 record 用法
前端·javascript·typescript
Lee川2 小时前
mini-cursor 揭秘:从 Tool 定义到 Agent 循环的完整实现
前端·人工智能·后端
Dlrb12112 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
Tisfy2 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
IronMurphy2 小时前
【算法四十七】152. 乘积最大子数组
算法
canonical_entropy2 小时前
从 Spec-Driven Development 到 Attractor-Guided Engineering
前端·aigc·ai编程
研☆香2 小时前
聊聊前端页面的三种长度单位
前端
给钱,谢谢!3 小时前
React + PixiJS 实现果园成长页:从状态机到浇水动画
前端·react.js·前端框架
淘矿人3 小时前
Claude辅助DevOps实践
java·大数据·运维·人工智能·算法·bug·devops