困难题哦!
给你一个 m x n 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。
题目数据保证总会存在一个数值和不超过 k 的矩形区域。
困难题主要还是学习为主哈
class Solution:
def maxSumSubmatrix(self, matrix: List[List[int]], k: int) -> int:
import bisect
row, col = len(matrix), len(matrix[0])
res = float("-inf")
for left in range(col):
r_sum = [0] * row
for right in range(left, col):
for j in range(row):
r_sum[j] += matrix[j][right]
arr = [0]
curr = 0
for tem in r_sum:
curr += tem
loc = bisect.bisect_left(arr, curr-k)
if loc<len(arr):
res = max(res, curr-arr[loc])
bisect.insort(arr, curr)
return res
看了几个小时还是有一个地方不是很懂
做题最痛苦的事不是一看题就没有思路,也不是有了思路写不出来,而是看了众多解答却发现一个都看不懂。。。
已经自闭了,我是不是不适合这一行