力扣练习—— 矩形区域不超过 K 的最大数值和(hard)

给定一个二维矩阵和整数k,找到矩形区域内数值和不超过k的最大矩形和。例如,对于矩阵[[1,0,1],[0,-2,3]]和k=2,最大矩形和为2。当行数远大于列数时,如何有效求解?输入包括矩阵大小和元素,输出不超过k的最大矩形和。" 40391965,3039001,Ubuntu安装与配置FTP服务器vsftpd,"['Linux', '运维', 'FTP', 'Ubuntu']
摘要由CSDN通过智能技术生成

矩形区域不超过 K 的最大数值和

1.问题描述
给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和。

示例:

输入: matrix = [[1,0,1],[0,-2,3]], k = 2

输出: 2

解释: 矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。

说明:

矩阵内的矩形区域面积必须大于 0。

如果行数远大于列数,你将如何解答呢?
[OJ中有个样例就是1300行 13列 ,注意超时]

2.输入说明
首先输入matrix的行数m、列数n,

然后输入m行,每行n个整数。

最后输入一个整数k。
3.输出说明
输出一个整数。
4.范例
输入
2 3
1 0 1
0 -2 3
2
输出
2
5.代码

#include <iostream>
#include <queue>
#include <cstdlib>
#include <cstring>
#include<algorithm>
#include<set>

using namespace std;

int findMaxSum(vector<vector<int> >matrix, int  k)
{
   
	//思想参考:https://leetcode.cn/problems/max-sum-of-rectangle-no-larger-than-k/solution/gong-shui-san-xie-you-hua-mei-ju-de-ji-b-dh8s/
	if (matrix.empty() || matrix[0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值