這個是這道題的解題思路是分別求一維陣列的字首和,然後再求二位陣列中指定區域的和。
具體實現方面,建立 m 行 n+1 列的二維陣列sums,其中 m和 n分別是矩陣matrix 的行數和列數,sums[i] 為matrix[i] 的字首和陣列。將sums 的列數設為n+1 的目的是為了方便計算每一行的子陣列和,不需要對 col1 =0 的情況特殊處理。
c++**如下:
classnummatrix }}
int sumregion(int row1, int col1, int row2, int
col2)
};
力扣 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 二維區域和檢索 矩陣不可變 力扣
題目 給定乙個二維矩陣,計算其子矩形範圍內元素的總和,該子矩陣的左上角為 row1,col1 右下角為 row2,col2 上圖子矩陣左上角 row1,col1 2,1 右下角 row2,col2 4,3 該子矩形內元素的總和為 8。示例 給定 matrix 3,0,1,4,2 5,6,3,2,1 ...
力扣刷題之區域和檢索 陣列不可變
這個題屬於簡單型別,這裡主要是記錄一種思路。第一反應是迴圈求取陣列中i到j元素的和,當然第一反應得到的答案通常都不是最優解法。這裡記錄另一種思路,字首和 先計算陣列 nums 在下標 j 和下標 i 1 的字首和,然後計算兩個字首和的差。其中求和不是利用雙層for迴圈 如果是這樣,那就可以直接for...