每日小记-贪心算法,双指针避免double循环

题目来源

https://leetcode-cn.com/problems/container-with-most-water/

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。

暴力破解

两层for循环计算每两个线组成的容器的容量

啥是贪心算法呢

在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解

这道题怎么说呢
在两侧设置两个指针,像中间遍历,每次移动的是短的那个(当前最优,我也不管移动之后是不是更短,但是至少还留着另外一根长的)

实质还是对遍历的集合进行剪枝,为啥剪掉的没有最优的呢

posted @ 2022-03-02 20:31  荧惑微光  阅读(59)  评论(0编辑  收藏  举报