欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-12 08:06:58
...

给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。

请你统计并返回 grid 中 负数 的数目。

示例 1:

输入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
输出:8
解释:矩阵*有 8 个负数。

示例2:

输入:grid = [[3,2],[1,0]]
输出:0

示例 3:

输入:grid = [[1,-1],[-1,-1]]
输出:3

示例 4:

输入:grid = [[-1]]
输出:1

提示:

m == grid.length
n == grid[i].length
1 <= m, n <= 100
-100 <= grid[i][j] <= 10

解析

该题目可以分解为求一维数组中比0小的数的个数, 和“荷兰国旗”类似。但是更加简单,因为次数一维数组是有序的。

解答

暴力循环**法

因为数组是递减排列,所以从后向前循环比较好

 if (grid == null){
                return 0;
            }

            int count = 0;
            for (int i = 0; i < grid.length; i++){
                int[] temp = grid[i];
                for (int j = temp.length - 1; j > -1 ; j--){
                    if (temp[j] >= 0){
                        break; // 跳出上一层讯息
                    }else {
                        count++;
                    }
                }
            }
            return  count;

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

相关标签: 算法与数据结构