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.如果整行都没有,即全部舍弃了,说明没有这个数

相关推荐
恋猫de小郭12 分钟前
Amper 正式转正 Kotlin Toolchain ,Gradle 未来何去何从
android·前端·flutter
敲代码的彭于晏20 分钟前
Bean 生命周期完全图解:前端同学也能看懂的 Spring 核心机制
java·前端·后端
IT_陈寒26 分钟前
Redis内存飙升的锅,原来是我没搞懂这个过期策略
前端·人工智能·后端
云浪33 分钟前
前端二进制数组完全指南:ArrayBuffer、TypedArray、DataView 一次讲透
前端·javascript
张风捷特烈35 分钟前
Flutter 类库大揭秘#02 | path_provider 各平台实现
前端·flutter
铁皮饭盒1 小时前
26年bunjs, elysia+pg一把梭, redis都省了
前端·javascript·后端
罗西的思考13 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
lichenyang45314 小时前
Docker 学习笔记(一):为什么需要镜像、容器和仓库?
前端
kyriewen14 小时前
别再对着 TypeScript 报错发呆了:我把 10 个最常见的红色波浪线翻译成了人话
前端·javascript·typescript