Leetcode1351. 统计有序矩阵中的负数
1. 问题描述


2. 思路
2.1 思路1
暴力
2.2 思路2
二分查找
3. 代码
3.1 思路1代码
func countNegatives(grid [][]int) int {
res := 0
for i := 0; i < len(grid); i++ {
for j := 0; j < len(grid[i]); j++ {
if grid[i][j] < 0 {
res++
}
}
}
return res
}
3.2 思路2代码
func countNegatives(grid [][]int) int {
res := 0
for i := 0; i < len(grid); i++ {
left, right := 0, len(grid[i]) - 1
for left <= right {
mid := left + (right - left) / 2
// fmt.Printf("left == %v, right == %v, mid == %v\n", left, right, mid)
if grid[i][mid] < 0 {
right = mid - 1
} else {
left = mid + 1
}
}
res += len(grid[i]) - left
}
return res
}
LeetCode 1351:统计有序矩阵中的负数
这篇博客介绍了LeetCode 1351题目的解决方案,主要探讨如何在有序矩阵中有效地统计负数。提供了两种算法思路,一种是暴力遍历,另一种是使用二分查找优化效率。代码实现清晰,易于理解。
490

被折叠的 条评论
为什么被折叠?



