其他分享
首页 > 其他分享> > 1351. Count Negative Numbers in a Sorted Matrix

1351. Count Negative Numbers in a Sorted Matrix

作者:互联网

这道题的最简单的算法如下,时间复杂度O(m*n)

    public int countNegatives(int[][] grid) {
        int res = 0;
        for(int i=0;i<grid.length;i++){
            for ( int j=0;j<grid[0].length;j++){
                if(grid[i][j]<0)
                    res ++;
            }
        }
        return res;
    }

因为这个二维数组是排序的,所以可以利用这一点,从下往上一行一行扫描,或者从右往左一列一列扫描,时间复杂度是O(m+n).

    public int countNegatives(int[][] grid) {
        int res =0;
        int m = grid.length,n = grid[0].length;
        int i=m-1, j=0;
        while(i>=0 && j<n){
            if(grid[i][j]<0){
                res += n-j;
                i--;
            }else{
                j++;
            }
        }
        return res;
    }

 

标签:Count,Matrix,int,res,1351,public,grid,countNegatives,复杂度
来源: https://www.cnblogs.com/feiflytech/p/15824897.html