給你一個 m * n 的矩陣 grid,矩陣中的元素無論是按行還是按列,都以非遞增順序排列。
請你統計并返回 grid 中 負數 的數目。
示例 1:
輸入:grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]
輸出:8
解釋:矩陣中共有 8 個負數。
代碼
class Solution {public int countNegatives(int[][] grid) {int n=grid[0].length,ans=0;for(int[] c:grid)//二分查找{int l=0,r=n-1;while (l<=r){int mid=(r-l)/2+l;if(c[mid]<0)r=mid-1;else l=mid+1;}ans+=n-l;//減去第一負數的位置}return ans;}
}