zoukankan      html  css  js  c++  java
  • 1351. Count Negative Numbers in a Sorted Matrix

    Given a m * n matrix grid which is sorted in non-increasing order both row-wise and column-wise. 

    Return the number of negative numbers in grid.

    Example 1:

    Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
    Output: 8
    Explanation: There are 8 negatives number in the matrix.
    

    Example 2:

    Input: grid = [[3,2],[1,0]]
    Output: 0
    

    Example 3:

    Input: grid = [[1,-1],[-1,-1]]
    Output: 3
    

    Example 4:

    Input: grid = [[-1]]
    Output: 1
    

    Constraints:

    • m == grid.length
    • n == grid[i].length
    • 1 <= m, n <= 100
    • -100 <= grid[i][j] <= 100
    class Solution {
        public int countNegatives(int[][] grid) {
            int res = 0;
            for(int i = 0; i < grid.length; i++){
                for(int j = 0; j < grid[0].length; j++){
                    if(grid[i][j] < 0) res++;
                }
            }
            return res;
        }
    }

    我没看错吧?brute force还66.9%

    class Solution {
        public int countNegatives(int[][] grid) {
            int res = 0;
            int m = grid.length;
            int n = grid[0].length;
            int i = 0;
            int j = n - 1;
            while(i < m && j >= 0){
                if(grid[i][j] < 0){
                    res += m - i;
                    j--;
                }
                else i++;
            }
            return res;
        }
    }

    O(M + N),从右上角开始扫到左下角

  • 相关阅读:
    使用Delphi调用条形码控件BarTender打印标签
    我看过的书
    语法规则
    智能家居
    HAL库ADC的DMA采集
    HAL库串口中断接收
    触动心灵的一句话
    摄影技巧
    中国茶道
    单片机延时函数
  • 原文地址:https://www.cnblogs.com/wentiliangkaihua/p/12325484.html
Copyright © 2011-2022 走看看