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;
    }
}
相关推荐
逍遥德2 分钟前
java Map Set List 扩容机制
java·开发语言·list
高山上有一只小老虎7 分钟前
mybatisplus实现分页查询
java·spring boot·mybatis
nbsaas-boot8 分钟前
基于 Java 21 ScopedValue 的多租户动态数据源完整实践
java·开发语言
2301_780669869 分钟前
线程安全、线程同步(三种加锁方式)、线程池(两种创建线程池方式、线程池处理Runnable任务、线程池处理Callable任务)、并发/并行
java
liuc031714 分钟前
Java项目关于不同key的读取
java·开发语言
yaoxin52112317 分钟前
296. Java Stream API - 二元操作符与“单位元“
java·服务器·windows
罗伯特_十三34 分钟前
Spring AI ChatModel 使用记录
java·人工智能·spring
毕设源码-朱学姐36 分钟前
【开题答辩全过程】以 基于SpringBoot的律师事务所管理系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
菜宾43 分钟前
java-seata基础教学
java·开发语言·adb
踩坑记录1 小时前
leetcode hot100 206.反转链表 easy
leetcode