題目:
給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 (row1, col1) ,右下角為 (row2, col2) 。
上圖子矩陣左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),該子矩形內元素的總和為 8。示例:
給定 matrix = [**:[3, 0, 1, 4, 2],
[5, 6, 3, 2, 1],
[1, 2, 0, 1, 5],
[4, 1, 0, 1, 7],
[1, 0, 3, 0, 5]
]sumregion(2, 1, 4, 3) -> 8
sumregion(1, 1, 2, 2) -> 11
sumregion(1, 2, 2, 4) -> 12
class
nummatrix
:def
__init__
(self, matrix: list[list[
int]])
:ifnot matrix or
not matrix[0]
: y,x=0,
0else
: y,x=
len(matrix)
,len
(matrix[0]
) self.count=[[
0]*(x+1)
for i in
range
(y+1)]
for a in
range
(y):
for b in
range
(x):
self.count[a+1]
[b+1
]=self.count[a]
[b+1
]+self.count[a+1]
[b]-self.count[a]
[b]+matrix[a]
[b]def
sumregion
(self, row1:
int, col1:
int, row2:
int, col2:
int)
->
int:
return self.count[row2 +1]
[col2 +1]
- self.count[row2 +1]
[col1]
- self.count[row1]
[col2 +1]
+ self.count[row1]
[col1]
304 二維區域和檢索 矩陣不可變
題目描述 給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 row1,col1 右下角為 row2,col2 30 1425 6321 1201 5410 1710 305 上圖子矩陣左上角 row1,col1 2,1 右下角 row2,col2 4,3 該子矩形內元素的總和為 8...
304 二維區域和檢索 矩陣不可變
給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 row1,col1 右下角為 row2,col2 上圖子矩陣左上角 row1,col1 2,1 右下角 row2,col2 4,3 該子矩形內元素的總和為 8。示例 給定 matrix 3,0,1,4,2 5,6,3,2,1 1,2...
304 二維區域和檢索 矩陣不可變
range sum query 2d 上圖子矩陣左上角 row1,col1 2,1 右下角 row2,col2 4,3 該子矩形內元素的總和為 8。示例 給定 matrix 3,0,1,4,2 5,6,3,2,1 1,2,0,1,5 4,1,0,1,7 1,0,3,0,5 sumregion 2,1...