每日一题——LeetCode1351.统计有序矩阵中的负数

方法一 暴力枚举:

javascript 复制代码
var countNegatives = function(grid) {
    let count=0
    for(let arr of grid){
        for(let num of arr){
            if(num<0){
                count++
            }
        }
    }
    return count
};

消耗时间和内存情况:

方法二 二分法:

javascript 复制代码
var countNegatives = function(grid) {
    const m = grid.length;  
    const n = grid[0].length;  
    let count = 0;  
    for (let i = 0; i < m; i++){
        let row = grid[i];  
        let left = 0;
        let right = n - 1;
        while(left <= right){
            let mid = Math.floor(left + (right - left) / 2);
            if (row[mid] < 0){  
                right = mid - 1;
            }else if (row[mid] > 0){  
                left = mid + 1;
            }else if (row[mid] === 0){
                left = mid + 1;
            }
        }
        count += n - left;
    }
    return count;
};

消耗时间和内存情况:

方法三 双指针

javascript 复制代码
var countNegatives = function(grid) {
    let row = 0;
    let col = grid[0].length - 1;
    let num = 0;
    while(row < grid.length && col >=0){
        if(grid[row][col] < 0){
            num = num + (grid.length - row);
            col = col - 1;
        }else{
            row = row + 1;
        }
    }
    return num;
};

消耗时间和内存情况:

相关推荐
总斯霖3 分钟前
P15445永远在一起!题解(月赛T2)
数据结构·c++·算法·深度优先
董员外10 分钟前
从零实现 AI 编程助手:LangChain.js + ReAct 循环实战
前端·javascript·后端
Frostnova丶10 分钟前
LeetCode 3296. 使山区高度为零的最少秒数
算法·leetcode
bluceli11 分钟前
JavaScript BigInt:处理大数值的终极解决方案
前端·javascript
会员源码网15 分钟前
抽象数据类型(ADT):理论与实践的桥梁
算法
软弹17 分钟前
Vue2、Vue3、React 状态管理全方位对比
前端·javascript·vue.js·react.js
BYWled21 分钟前
告别 Date | JavaScript Temporal API 使用教程
javascript
像污秽一样23 分钟前
算法设计与分析-习题4.5
数据结构·算法·排序算法·剪枝
样例过了就是过了33 分钟前
LeetCode热题100 全排列
数据结构·c++·算法·leetcode·dfs
2401_8980751234 分钟前
分布式系统监控工具
开发语言·c++·算法