max-sum-of-sub-matrix-no-larger-than-k
根据上一篇文章提到的参考文档:
https://leetcode.com/discuss/109749/accepted-c-codes-with-explanation-and-references
我实现的解法,用了一个sum_max,不再另设res。
class Solution { public: int maxSumSubmatrix(vector<vector<int>>& matrix, int K) { int sum_max = INT_MIN; int rlen = matrix.size(); int clen = matrix[0].size(); for (int i=0; i<clen; i++) { vector<int> tmp_vec(rlen, 0); for (int j=i; j<clen; j++) { for (int k=0; k<rlen; k++) { tmp_vec[k] += matrix[k][j]; } set<int> cur_max_set; int cur_max = 0; for (int k=0; k<rlen; k++) { cur_max += tmp_vec[k]; if (cur_max <= K) { sum_max = max(sum_max, cur_max); } set<int>::iterator iter = cur_max_set.lower_bound(cur_max - K); if (iter != cur_max_set.end()) { sum_max = max(sum_max, cur_max-*iter); } cur_max_set.insert(cur_max); } } } return sum_max; } };
27 / 27 test cases passed.
|
Status:
Accepted |
Runtime: 1016 ms
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!