Count Negative Numbers in a Sorted Matrix Program (Leetcode):
Given a m x 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
Follow up: Could you find an
O(n + m)
solution?class Solution:
def binarySearch(self, nums):
left = 0
right = len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] >= 0:
left = mid + 1
else:
right = mid - 1
return len(nums) - left
def countNegatives(self, grid: List[List[int]]) -> int:
count = 0
for row in grid:
count += self.binarySearch(row)
return count
0 Comments
Please don't enter any spam link in comment box.
Emoji