363. 矩形区域不超过 K 的最大数值和(C语言实现)

文章目录

  • 363. 矩形区域不超过 K 的最大数值和
    • 题干
    • 声明
    • 方法1-暴力枚举+简单dp
    • 方法2-暴力枚举+二维数组前缀和
    • 方法3-固定边界搜索
    • 方法4-固定边界搜索+dp优化
    • 方法5-固定边界搜索+前缀和+二分查找

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

本题涉及内容:一/二维前缀和问题、降维问题、暴力枚举问题、dp问题、二分查找问题

题干

给你一个 m ∗ n m * n mn 的矩阵 m a t r i x matrix matrix 和一个整数 k k k ,找出并返回矩阵内部矩形区域的不超过 k k k 的最大数值和。

题目数据保证总会存在一个数值和不超过 k k k 的矩形区域。

示例1

363. 矩形区域不超过 K 的最大数值和(C语言实现)_第1张图片

输入:matrix = [[1,0,1],[0,-2,3]], k = 2
输出:2
解释:蓝色边框圈出来的矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。

数据范围

  • 1 ≤ R o w S i z e , C o l S i z e ≤ 100 1\le RowSize,ColSize\le 100 1RowSize,ColSize100
  • 1 ≤ m a t r i x [ i ] [ j ] ≤ 100 1\le matrix[i][j]\le 100 1matrix[i][j]100
  • − 1 0 5 ≤ k ≤ 1 0 5 -10^5\le k\le 10^5 105k105

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-sum-of-rectangle-no-larger-than-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

声明

下方代码默认数据已经读入在matrix二维数组,然后主函数调用Max_Sum_Sub_Matrix这个子函数返回result

方法1-暴力枚举+简单dp

时间复杂度,dp时间复杂度为指数级增长,并且Max_Sum_Sub_Matrix循环复杂度为 O ( n 4 ) O(n^4) O(n4),两者相乘,嘶~

都不敢上交到leetcode

#define Max(a,b) (a)>

你可能感兴趣的:(算法学习-Leetcode,动态规划,算法,二分查找)