Leetcode 363. 矩形区域不超过 K 的最大数值和
Posted randyniu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 363. 矩形区域不超过 K 的最大数值和相关的知识,希望对你有一定的参考价值。
//没有什么好想法,就用暴力遍历AC了
class Solution { public: int maxSumSubmatrix(vector<vector<int>>& mat, int k) { int row = mat.size(); if(row ==0) return 0; int col = mat[0].size(); if(col==0) return 0; vector<vector<int>> dp(row + 1, vector<int>(col + 1, 0)); //先将这个矩形的sum数据给求解出来。 //dp[i][j]表示的是以i,j为右下角矩形的和,一切都是一句左上角为参考对象 for(int i=1; i<=row; ++i) { for(int j=1; j<=col; ++j) { dp[i][j] = mat[i-1][j-1] + dp[i-1][j] + dp[i][j-1] -dp[i-1][j-1]; } } int ret = INT_MIN; for(int i=1; i<=row; ++i) { for(int j=1; j<=col; ++j) { for(int ii=0; ii<i; ++ii) { for(int jj=0; jj<j; ++jj) { int tmp = dp[i][j] - dp[ii][j] - dp[i][jj] + dp[ii][jj]; if(tmp <= k) ret = max(ret, tmp); } } } } return ret; } };
以上是关于Leetcode 363. 矩形区域不超过 K 的最大数值和的主要内容,如果未能解决你的问题,请参考以下文章
2022-01-20: 矩形区域不超过 K 的最大数值和。 给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。 题目数据保证总会存在一