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
}