leetcode 1351

1351: 统计有序矩阵中的负数

利用 grid 行列有序的性质,把时间复杂度从 O(mn) 的暴力查找优化成 O(m+n)。

复制代码
class Solution {
public:
    int countNegatives(vector<vector<int>>& grid) {
        int m=grid.size(),n=grid[0].size();
        int ans=0;
        int i=0,j=n-1; //从右上角开始
        while(i<m && j>=0){
            if(grid[i][j]<0){
                ans+=m-i; //这一列剩余元素都是负数
                j--;
            }
            else i++; //这一行剩余元素全都非负,排除
        }
        return ans;
    }
};
相关推荐
sul.i6 分钟前
浅析·指针
算法
春日见8 分钟前
策略梯度算法
算法
Brilliantwxx9 分钟前
【算法从零到千】【1-7】 双指针算法
开发语言·c++·笔记·算法·leetcode·推荐算法
小许同学记录成长11 分钟前
孔洞修补算法
算法
随意起个昵称12 分钟前
线性dp-计数类题目9(斐波那契字符串)
算法·动态规划
AKA__Zas16 分钟前
芝士算法 滑动窗口(1.0)
数据结构
菜菜的顾清寒18 分钟前
力扣HOT100(49)动态规划 -- 打家劫舍
算法·leetcode·动态规划
葡萄城技术团队21 分钟前
观察生活:人是如何分词的
算法·生活
装不满的克莱因瓶27 分钟前
什么是特征分解?从数学定义到现实问题的映射
人工智能·数学·算法·机器学习·ai·特征分解
killerbasd31 分钟前
总结 6.1
算法