363. Max Sum of Rectangle No Larger Than K

来源:互联网 发布:中石化邮箱pop端口号 编辑:程序博客网 时间:2024/05/16 17:54
class Solution {public:    int maxSumSubmatrix(vector<vector<int>>& matrix, int k) {        int row=matrix.size();        if(row==0)            return 0;        int col=matrix[0].size();        if(col==0)            return 0;        int ret=INT_MIN;        for(int i=0;i<col;i++)        {            vector<int> sums(row,0);            for (int l = i; l < col; l++) {                for(int r=0;r<row;r++)                {                    sums[r]+=matrix[r][l];                }                set<int> s;                s.insert(0);                int curmax=INT_MIN;                int cursum=0;                for(int number:sums)                {                    cursum+=number;                    set<int>::iterator it=s.upper_bound(cursum-k-1);                    if(it!=s.end())                        curmax=max(curmax,cursum-*it);                    s.insert(cursum);                }                ret=max(curmax,ret);            }        }        return ret;    }};
1 0
原创粉丝点击