leetcode304 二維區域和檢索 矩陣不可變

2021-10-05 21:01:31 字數 1233 閱讀 5608

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

>

8sumregion(1

,1,2

,2)-

>

11sumregion(1

,2,2

,4)-

>

12說明:

你可以假設矩陣不可變。

會多次呼叫 sumregion 方法。

你可以假設 row1 ≤ row2 且 col1 ≤ col2。

首先建立乙個和輸入陣列尺寸相同的陣列nums,nums[i][j]的值是matrix[0][0]~matrix[i][j]的所有元素的累加。

有了該陣列後,當我們求某個區域(row1, col1, row2, col2)的元素的時候,只要計算nums[row2][col2]-nums[row1-1][col2]-nums[row2][col1-1]+nums[row1-1][col1-1]即可。

解釋:我們計算右下角方塊的元素和,首先考慮整個左上角的大區域,減掉上半部分,減掉左半部分,但是這樣左上角小區域被減了兩次,因此再加乙個左上角的小區域即可。

Leetcode 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...

leedcode304二維區域檢索和矩陣不可變

class nummatrix def init self,matrix list list int ifnot matrix or not matrix 0 pass else row len matrix col len matrix 0 初始化行列都為0,且row 1,col 1 self.d...

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

題目描述 給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 row1,col1 右下角為 row2,col2 30 1425 6321 1201 5410 1710 305 上圖子矩陣左上角 row1,col1 2,1 右下角 row2,col2 4,3 該子矩形內元素的總和為 8...