本文主要是介绍C++ | Leetcode C++题解之第363题矩形区域不超过K的最大数值和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
class Solution {
public:int maxSumSubmatrix(vector<vector<int>> &matrix, int k) {int ans = INT_MIN;int m = matrix.size(), n = matrix[0].size();for (int i = 0; i < m; ++i) { // 枚举上边界vector<int> sum(n);for (int j = i; j < m; ++j) { // 枚举下边界for (int c = 0; c < n; ++c) {sum[c] += matrix[j][c]; // 更新每列的元素和}set<int> sumSet{0};int s = 0;for (int v : sum) {s += v;auto lb = sumSet.lower_bound(s - k);if (lb != sumSet.end()) {ans = max(ans, s - *lb);}sumSet.insert(s);}}}return ans;}
};
这篇关于C++ | Leetcode C++题解之第363题矩形区域不超过K的最大数值和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!