每日一题——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;
};

消耗时间和内存情况:

相关推荐
小许同学记录成长14 小时前
gr-analog 模拟信号模块完整源码分析
python·算法·信号处理
计算机安禾14 小时前
【算法分析与设计】第8篇:贪心策略的理论基础与拟阵模型
算法
西索ovo14 小时前
揭开神秘面纱!JS 代码执行前竟暗藏玄机
javascript
手写码匠14 小时前
手写 MoE(混合专家模型):从零实现大模型的稀疏激活架构
人工智能·深度学习·算法·aigc
Black蜡笔小新14 小时前
自动化AI算法训练服务器/企业AI算力工作站DLTM赋能产业智能数字化升级
人工智能·算法·自动化
许彰午14 小时前
32 个 Vue 组件的设计取舍
前端·javascript·vue.js
Asize14 小时前
JavaScript 对象通关指南:从字面量到原型链,一篇文章踩遍所有坑
前端·javascript
玖釉-14 小时前
「接雨水」问题的算法建模与双指针优化分析
c++·windows·算法
计算机安禾14 小时前
【算法设计与分析】第7篇:01背包问题的动态规划建模与空间优化
算法
程序员牛奶14 小时前
[Algo-3]前缀和秒杀两道区间求和题:一维 + 二维统一模板
后端·算法