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

消耗时间和内存情况:

相关推荐
珠海西格电力6 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
多加点辣也没关系6 小时前
JavaScript|第4章:类型转换
开发语言·javascript
yqcoder7 小时前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript
烬羽7 小时前
还在手动拼路径、写回调地狱?一文吃透 Node.js 的 path 和 fs
javascript·程序员·node.js
mONESY7 小时前
LangChain JS 高性能并行执行解析、工具调用底层封装
javascript
还有多久拿退休金8 小时前
让飞书知识库跟着 commit 自己长:一套自动化知识库的真实实现
前端·算法·架构
迅速的自行车8 小时前
从一段模板说起
前端·javascript·vue.js
YIAN8 小时前
LangChain JS 工具调用实战:基于 DeepSeek-V4-Flash 实现本地文件读取 AI 代码助手(完整可运行源码)
javascript·langchain·前端框架
尼斯湖皮皮怪9 小时前
iceCoder 记忆系统深度分析
前端·javascript
KaMeidebaby9 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法