问题描述
简要思路
暴力前缀和,没想到竟然能过。。
代码
class Solution {
public:
int s[110][110];
int numSubmatrixSumTarget(vector<vector<int>>& matrix, int target) {
int n = matrix.size();
int m = matrix[0].size();
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1] + matrix[i-1][j-1];
}
}
int res = 0;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
for(int k = 1; k <= i; k++){
for(int l = 1; l <= j; l++){
int sum = s[i][j] - s[i][l-1] - s[k-1][j] + s[k-1][l-1];
if(sum == target) res++;
}
}
}
}
return res;
}
};