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

消耗时间和内存情况:

相关推荐
蒟蒻的贤1 分钟前
Web APIs 第二天
开发语言·前端·javascript
清灵xmf5 分钟前
揭开 Vue 3 中大量使用 ref 的隐藏危机
前端·javascript·vue.js·ref
2301_8010741513 分钟前
TypeScript异常处理
前端·javascript·typescript
ᅠᅠᅠ@14 分钟前
异常枚举;
开发语言·javascript·ecmascript
caperxi16 分钟前
前端开发中的防抖与节流
前端·javascript·html
学习路上的小刘18 分钟前
vue h5 蓝牙连接 webBluetooth API
前端·javascript·vue.js
&白帝&18 分钟前
vue3常用的组件间通信
前端·javascript·vue.js
凌肖战19 分钟前
力扣上刷题之C语言实现(数组)
c语言·算法·leetcode
罗_三金40 分钟前
前端框架对比和选择?
javascript·前端框架·vue·react·angular
秋夫人1 小时前
B+树(B+TREE)索引
数据结构·算法