Max Sum of Rectangle No Larger Than K
2016-07-22 15:23
489 查看
对于一维数组求最大的和并且不大于K
对于二维数组,转化为一维的迭代
代码:
class Solution { public: int maxSumSubmatrix(vector<vector<int>>& matrix, int k) { if (matrix.empty()) return 0; int row = matrix.size(); int col = matrix[0].size(); int res = numeric_limits<int>::min(); for (int l = 0; l < col; l++) { vector<int>sums(row, 0); for (int r = l; r < col; ++r) { for (int i = 0; i < row; ++i) { sums[i] += matrix[i][r]; } //Find the max subarray no more than k set<int> accuSet; accuSet.insert(0); int curSum = 0, CurMax = numeric_limits<int>::min(); for (int sum : sums) { curSum += sum; set<int>::iterator it = accuSet.lower_bound(curSum - k); if (it != accuSet.end()) CurMax = max(CurMax, curSum - *it); accuSet.insert(curSum); } res = max(res, CurMax); } } return res; } };
相关文章推荐
- 产品经理——关于产品的销售
- Github使用之创建ssh
- HDU 1002 A + B Problem II
- hdu 5745 La Vie en rose(2016多校第二场)
- C语言指针函数和函数指针详细介绍
- macOS下ls命令配置
- get方法
- strman-java(java字符串工具库)
- IDEA Debug问题
- Java反转单链表
- parent
- 自动转换&&强制转换
- TextView组件改变部分文字的颜色
- linux 操作系统中chown命令的使用
- boost::share_ptr学习笔记
- JQuery版tab切换
- Free PCB Footprints and Schematic Symbols for Millions of Parts - SnapEDA
- kubernetes入门之快速部署
- mysql中分类统计的一种好方法
- facebook登录功能xml文件中application Id的配置问题