Medium

Count Submatrices with Top-Left Element and Sum Less Than kPython

Full explanation · Time O(n * m) · Space O(1)

# Time:  O(n * m)
# Space: O(1)

# prefix sum
class Solution(object):
    def countSubmatrices(self, grid, k):
        """
        :type grid: List[List[int]]
        :type k: int
        :rtype: int
        """
        result = 0
        for i in xrange(len(grid)):
            for j in xrange(len(grid[0])):
                if i-1 >= 0:
                    grid[i][j] += grid[i-1][j]
                if j-1 >= 0:
                    grid[i][j] += grid[i][j-1]
                if i-1 >= 0 and j-1 >= 0:
                    grid[i][j] -= grid[i-1][j-1]
                if grid[i][j] <= k:
                    result += 1
        return result