Skip to content

Commit 65b391d

Browse files
authored
Update range-sum-query-2d-mutable.py
1 parent e20a425 commit 65b391d

1 file changed

Lines changed: 8 additions & 9 deletions

File tree

Python/range-sum-query-2d-mutable.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,17 @@ def __init__(self, matrix):
1616
self.__bit = [[0] * (len(self.__matrix[0]) + 1) \
1717
for _ in xrange(len(self.__matrix) + 1)]
1818

19-
bit = [[0] * (len(self.__matrix[0]) + 1) \
20-
for _ in xrange(len(self.__matrix) + 1)]
21-
for i in xrange(1, len(bit)):
22-
for j in xrange(1, len(bit[0])):
23-
bit[i][j] = matrix[i-1][j-1] + bit[i-1][j] + bit[i][j-1] - bit[i-1][j-1]
24-
2519
self.__bit = [[0] * (len(self.__matrix[0]) + 1) \
2620
for _ in xrange(len(self.__matrix) + 1)]
27-
for i in xrange(1, len(bit)):
28-
for j in xrange(1, len(bit[0])):
21+
for i in xrange(1, len(self.__bit)):
22+
for j in xrange(1, len(self.__bit[0])):
23+
self.__bit[i][j] = matrix[i-1][j-1] + self.__bit[i-1][j] + \
24+
self.__bit[i][j-1] - self.__bit[i-1][j-1]
25+
for i in reversed(xrange(1, len(self.__bit))):
26+
for j in reversed(xrange(1, len(self.__bit[0]))):
2927
last_i, last_j = i - (i & -i), j - (j & -j)
30-
self.__bit[i][j] = bit[i][j] - bit[i][last_j] - bit[last_i][j]+ bit[last_i][last_j]
28+
self.__bit[i][j] = self.__bit[i][j] - self.__bit[i][last_j] - \
29+
self.__bit[last_i][j] + self.__bit[last_i][last_j]
3130

3231
def update(self, row, col, val):
3332
"""

0 commit comments

Comments
 (0)