1
# Runtime: 3180 ms (Top 18.96%) | Memory: 24.7 MB (Top 69.46%)6
def __init__(self, matrix: List[List[int]]):7
m, n = len(matrix), len(matrix[0])8
# Understand why we need to create a new matrix with extra one row/column9
self.sum = [[0 for row in range(n + 1)] for column in range(m + 1)]10
for r in range(1, m + 1):11
for c in range(1, n + 1):15
- self.sum[r - 1][c - 1]16
+ matrix[r - 1][c - 1]19
def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:20
r1, c1, r2, c2 = row1 + 1, col1 + 1, row2 + 1, col2 + 123
- self.sum[r1 - 1][c2]24
- self.sum[r2][c1 - 1]25
+ self.sum[r1 - 1][c1 - 1]29
# Your NumMatrix object will be instantiated and called as such:30
# obj = NumMatrix(matrix)31
# param_1 = obj.sumRegion(row1,col1,row2,col2)