Leetcode 240. 搜索二维矩阵 II JavaScript (Day 9)

js一刷暴力

javascript 复制代码
var searchMatrix = function(matrix, target) {
    for(let i=0;i<matrix.length;i++){
        if(matrix[i][matrix[0].length-1]<target) continue;
            let left=0,right=matrix[0].length-1;
            let mid= Math.floor((left + right) / 2);

            while(left<=right){
                if(matrix[i][mid]===target) return true;
                if(matrix[i][mid]>target){
                    right=mid-1;
                    mid = Math.floor((left + right) / 2);

                }else if( matrix[i][mid]<target){
                    left=mid+1;
                    mid= Math.floor((left + right) / 2);

                }
            }
        
    }
    return false;
};

js一刷 优化

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


};

其中第二种方法的算法核心:
只关注矩阵的右上角,如果它小于target,且它的一行中最大的,则去掉这一行,若大于target且它是这一列中最小的,则去掉这一列,直到找到为止

相关推荐
怕浪猫14 分钟前
第一章、Chrome DevTools Protocol (CDP) 详解
前端·javascript·chrome
一只齐刘海的猫3 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
Yeats_Liao3 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
我是真菜3 小时前
彻底理解js中的深浅拷贝
前端·javascript
金色熊族3 小时前
QTransform使用心得(二)--仿射变换、非仿射变换、矩阵
qt·线性代数·矩阵
凌波粒5 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
尽兴-5 小时前
4.1 智能体核心:Agent、Sub-Agent、ReAct、规划执行
前端·javascript·react.js·agent·react·subagent
万物更新_5 小时前
vue框架
前端·javascript·vue.js·笔记
兰令水5 小时前
leecodecode【面试150】【2026.6.13打卡-java版本】
java·算法·leetcode
临沂堇5 小时前
刷题日志 | Leetcode Hot 100 哈希
算法·leetcode·哈希算法