Advertisement
smj007

Untitled

Mar 7th, 2024
777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. class NumMatrix:
  2.  
  3.     def __init__(self, matrix: List[List[int]]):
  4.         self.matrix = matrix
  5.         n, m = len(self.matrix), len(self.matrix[0])
  6.         dp = [[0]*(m+1) for _ in range(n+1)]
  7.         for i in range(1, n+1):
  8.             for j in range(1, m+1):
  9.                 dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + matrix[i-1][j-1]
  10.  
  11.         self.dp = dp
  12.        
  13.     def sumRegion(self, row1: int, col1: int, row2: int, col2: int) -> int:
  14.         row1, row2 = row2, row1
  15.         col1, col2 = col2, col1
  16.         return (
  17.             self.dp[row1+1][col1+1]
  18.             - (self.dp[row1 + 1][col2]
  19.                 + self.dp[row2][col1 + 1]
  20.                 - self.dp[row2][col2]
  21.             )
  22.         )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement