![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
贪心算法
咚咚z
这个作者很懒,什么都没留下…
展开
-
Leetcode 605 种花问题 (贪心)
题目:解题思路:看过题目可以看出来这道题很适合贪心的解法,每一块地都尽可能种上花,则对于全局就是最优解。这道题需要考虑的主要是程序能不能处理一些特殊情况,比如把花种在两端和中间是不一样的,只需要考虑一边。比如题目问的是能不能种下n朵花,则我们只需要比较能不能容纳下n朵花,不需要纠结是不是恰好能种下n朵,还有对于只有一块地的处理等等。代码实现: 这是最初的代码,将所有条件都一一列举出来,很杂乱而且不方便查看。class Sol...原创 2022-01-04 17:32:55 · 213 阅读 · 0 评论 -
Leetcode 435 无重叠区间 (贪心)
题目:解题思路:采用贪心的解题思想,可以想出我们需要对区间进行排序。 我们选择从左向右,对右端点进行升序的排序。可以发现区间的左端点大于等于上一个没有重叠的区间的右端点(默认是第一个,即我们排序好右端点最小的区间的端点) 时,这时区间没有重叠。例如2,3的左端点没有大于等于1的右端点,此时和1有重叠,而4的左端点大于1的右端点,4就是下一个没有重叠的区间。我们可以把每一次这种没重叠的区间的右端点记录为right,记录出有多少个这种未重叠...原创 2022-01-04 12:54:58 · 538 阅读 · 0 评论 -
Leetcode 135 分发糖果(贪心)
题目:解题思路:这一次的贪心策略是在每一次的遍历中,只考虑当前一侧的比较,从而使得全局都是最优的。先从左向右比较,对右边评分更高的孩子给他左边孩子+1个糖果,这样完成左遍历。但是这样会有一些问题,如果右边是评分递减的几个孩子,左遍历就达不到想要的效果。如图所示:我们可以从右向左再来一次比较,对左边评分高于右边,但糖果数量却不大于右边的孩子,对他的糖果数量+1,反应在上图就是对评分为4,2的两个孩子糖果数量做出改变,最终结果如下图:实...原创 2022-01-03 13:37:15 · 138 阅读 · 0 评论 -
Leetcode 455 分发饼干(贪心)
贪心算法是满足每一次操作都是局部最优的,从而满足全局最优。先对孩子的饥饿度以及饼干的大小排序,遍历孩子饥饿度数组,每一次选择出能让孩子吃饱的最小尺寸饼干。原创 2022-01-02 21:32:31 · 359 阅读 · 0 评论