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