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且它是这一列中最小的,则去掉这一列,直到找到为止

相关推荐
alphaTao1 小时前
LeetCode 每日一题 2026/3/16-2026/3/22
linux·windows·leetcode
空空潍1 小时前
LeetCode力扣 hot100一刷完结
算法·leetcode
lcreek1 小时前
LeetCode 1162.地图分析
算法·leetcode·bfs
Tisfy1 小时前
LeetCode 3567.子矩阵的最小绝对差:暴力模拟
leetcode·矩阵·题解·模拟·暴力
不要秃头的小孩1 小时前
力扣刷题——77. 组合
数据结构·python·算法·leetcode
FlyWIHTSKY1 小时前
Vue 3 onMounted 中控制同步与异步执行策略
前端·javascript·vue.js
隔壁小邓2 小时前
vue的组件化的理解之单独拆分的组件&组件的封装
前端·javascript·vue.js
Ivanqhz2 小时前
图着色寄存器分配算法(Graph Coloring)
开发语言·javascript·python·算法·蓝桥杯·rust
我命由我123452 小时前
Element Plus 问题:选择框表单校验没有触发
开发语言·前端·javascript·html·ecmascript·html5·js