每日小记-贪心算法,双指针避免double循环
题目来源
https://leetcode-cn.com/problems/container-with-most-water/
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
暴力破解
两层for循环计算每两个线组成的容器的容量
啥是贪心算法呢
在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解
这道题怎么说呢
在两侧设置两个指针,像中间遍历,每次移动的是短的那个(当前最优,我也不管移动之后是不是更短,但是至少还留着另外一根长的)
实质还是对遍历的集合进行剪枝,为啥剪掉的没有最优的呢