Java | Leetcode Java题解之第363题矩形区域不超过K的最大数值和

题目:

题解:

java 复制代码
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;
    }
}
相关推荐
AIBox3651 小时前
claude 镜像 api 使用指南(2026 年4 月更新)
java·服务器·前端·人工智能·gpt·前端框架
极光代码工作室1 小时前
基于SpringBoot的在线考试系统
java·springboot·web开发·后端开发
Gopher_HBo1 小时前
CompletableFuture运用原理
java·后端
庞轩px1 小时前
反射与动态代理——Java语言动态性的核心
java·spring·反射·aop·动态代理·类型
LL_break2 小时前
从零上手Redis:string编码原理、常用命令与设计逻辑详解
java·数据库·redis·缓存·java-ee
Rsun045512 小时前
13、Java 策略模式从入门到实战
java·bash·策略模式
历程里程碑2 小时前
Linux 50 IP协议深度解析:从报头结构到子网划分与NAT
java·linux·开发语言·网络·c++·python·智能路由器
绿豆人2 小时前
go语言的Reflect包
java·开发语言·数据结构
liuyao_xianhui2 小时前
map和set_C++
java·开发语言·数据结构·c++·算法·宽度优先
清心歌2 小时前
ArrayList 深入解析
java