【每日一题】LeetCode 363.矩形区域不超过K的最大数值和
本文最后更新于:2023年11月8日 中午
LeetCode 363. 矩形区域不超过K的最大数值和
思路
将问题转化为一维上的问题,枚举lo
和hi
表示当前处理数据的列区间,对于每一个列区间,可以看做一个一维问题。
一维问题可以用前缀和配合二分的方式在 O(mlogm)
的时间解决。维护一个有序集合,集合中初始放入 0。每次获取当前位置的前缀和,在集合中二分查找第一个大于等于 sum - k
的数字,如果能找到,则更新答案。然后将当前位置的前缀和放入有序集合中。
由此推出的列区间共有n^2个。每个一维问题解决时间为O(mlogm)
,故总时间复杂度为O(n^2mlog(m))
C++代码
1 |
|
AcWing 3412.邻域均值
思路
使用前缀和,得出最后的s[N][N]
然后进行计算,后面主要返回整体的平均值即可,每次都选出最适合的区域并保存。
C++代码
1 |
|
【每日一题】LeetCode 363.矩形区域不超过K的最大数值和
https://www.0error.net/2021/04/95003eb.html