304 二維區域和檢索 矩陣不可變 力扣

2021-10-20 22:06:32 字數 1502 閱讀 2444

題目:

給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 (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...