很經典的題目,用矩陣的字首和求解
題目:
題意:題意比較簡單,要求你返回乙個新的矩陣,要求該矩陣的每個元素為原矩陣的某些元素的和,這些元素圍成乙個正方形,大小與給定的k值呈正相關
求解方法(以下來自力扣題解):
這個想明白以後,那麼我們在來想要怎麼計算從(0,0)到每個小塊的總和是多少?
同樣是利用字首和的思想,直接上遞推公式
dp[i][j] = dp[i-1][j] + dp[i][j-1] + mat[i][j] - dp[i-1][j-1];
class
solution
;int m=mat.
size()
,n=mat[0]
.size()
;//m*n
vector
int>>
dp(m,vector<
int>
(n,0))
,sum=dp;
//提前確定動態陣列的大小,emmmmm
//vector> dp(10,vector(10)); //10*10
//對當前矩陣進行求和
for(
int i=
0; i
for(
int i=
0; i
return sum;}}
;
leetcode 1314 矩陣區域和
給你乙個 m n 的矩陣 mat 和乙個整數 k 請你返回乙個矩陣 answer 其中每個 answer i j 是所有滿足下述條件的元素 mat r c 的和 i k r i k,j k c j k r,c 在矩陣內。示例 1 輸入 mat 1,2,3 4,5,6 7,8,9 k 1 輸出 12,...
leetcode 1314 矩陣區域和
這題不使用其他方法強行四重for也可以過,但是記憶體和時間占用可謂慘不忍睹。本題可採用矩陣字首和的方法解決,從記憶體占用到時間處理上都會好很多。第一遍 如下 感覺這題有點奇怪的簡單.先建立乙個和原矩陣相同大小的矩陣 然後使用四個判斷把rmin rmax,cmin,cmax確定下來 最後使用上述四個引...
leetcode 1314 矩陣區域和
給你乙個 m x n 的矩陣 mat 和乙個整數 k 請你返回乙個矩陣 answer 其中每個 answer i j 是所有滿足下述條件的元素 mat r c 的和 i k r i k,j k c j k 且 r,c 在矩陣內。示例 1 輸入 mat 1,2,3 4,5,6 7,8,9 k 1 輸出...