Skip to content

Commit 6cf3e6d

Browse files
committed
Time: 226 ms (49.76%), Space: 40.1 MB (33.33%) - LeetHub
1 parent 13c7711 commit 6cf3e6d

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# time complexity: O(n^2)
2+
# space complexity: O(n^2)
3+
from typing import List
4+
5+
6+
class Solution:
7+
def rangeAddQueries(self, n: int, queries: List[List[int]]) -> List[List[int]]:
8+
result = [[0 for _ in range(n)] for _ in range(n)]
9+
prefix = [[0 for _ in range(n + 1)] for _ in range(n + 1)]
10+
for startR, startC, endR, endC in queries:
11+
prefix[startR][startC] += 1
12+
prefix[endR + 1][startC] -= 1
13+
prefix[startR][endC + 1] -= 1
14+
prefix[endR + 1][endC + 1] += 1
15+
16+
for r in range(n):
17+
for c in range(n):
18+
top = 0 if r == 0 else result[r - 1][c]
19+
left = 0 if c == 0 else result[r][c - 1]
20+
leftTop = 0 if r == 0 or c == 0 else result[r - 1][c - 1]
21+
result[r][c] = prefix[r][c] + top + left - leftTop
22+
23+
return result
24+
25+
26+
n = 3
27+
queries = [[1, 1, 2, 2], [0, 0, 1, 1]]
28+
print(Solution().rangeAddQueries(n, queries))
29+
n = 2
30+
queries = [[0, 0, 1, 1]]
31+
print(Solution().rangeAddQueries(n, queries))

0 commit comments

Comments
 (0)