算法——问题转化

本质

这类型题目的本质就是将一种显而易见的求法转换成另一种等价的求法,以此来求解或降低时间复杂度

例题

这个题目我们很容易想到的就是枚举左上角和右下角的下标(四层循环)来暴力求解。但是显然会超时。一开始,我想从削减循环层数入手,可找了半天也没有发现能用动态规划/贪心/预处理来降层的方法。这个时候我们思维不能闭塞(非要盯着一处来思考),而是要大胆假设其他思路,从根本上换一种理解方式。其实,我们可以直接枚举一个矩形的上界和下界,固定之后可以发现对于同一个上下界,求最大矩形就类似于一维数组中的"求最大子数组",可用动态化规划解决,只不过我们需要通过预处理把多维矩阵压缩成一维。

相关推荐
evans在进步1 小时前
LeetCode 53 最大子数组和:一次遍历掌握 Kadane 算法
算法·leetcode·职场和发展
小七在进步1 小时前
数据结构:选择排序
数据结构·算法·排序算法
Nil2082 小时前
leetcode 230二叉搜索树中第k小的元素
算法·leetcode·职场和发展
被怪兽吃掉了2 小时前
5.2.1一维组数定义方式
开发语言·c++·算法
不会就选b2 小时前
Linux之线程进阶---封装信号量
数据结构·算法
不会就选b2 小时前
算法日常・每日刷题--<BFS&&最短路径>4
算法·宽度优先
旖旎夜光2 小时前
LeetCode 69:x 的平方根(二分查找) —— 题解
数据结构·c++·算法·leetcode·二分查找
sel_92 小时前
【Pytorch】PyTorch 深度学习框架详解:从安装到实战
人工智能·pytorch·深度学习·算法·语言模型
学习星球2 小时前
【LeetCode算法题精讲】图算法精讲——从图遍历到拓扑排序
数据结构·算法·leetcode·图搜索