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;
上一篇: Java精选笔记_Java编程基础
下一篇: JAVA-18-网络编程