![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
第二章
贪心算法
AVICIIl
这个作者很懒,什么都没留下…
展开
-
x76. Minimum Window Substring(Hard)
滑动窗口、双指针原创 2021-10-10 19:17:53 · 80 阅读 · 0 评论 -
×142. Linked List Cycle II(Medium)
快慢指针、双指针、哈希表原创 2021-10-10 16:17:30 · 99 阅读 · 0 评论 -
406. Queue Reconstruction by Height(Medium)
贪心算法,排序,插入原创 2021-10-08 21:58:08 · 102 阅读 · 0 评论 -
122. Best Time to Buy and Sell Stock II(Medium)
贪心算法原创 2021-10-08 20:15:23 · 96 阅读 · 0 评论 -
763. Partition Labels(Medium)
贪心,区间重叠,二维向量的定义原创 2021-10-08 19:26:11 · 133 阅读 · 0 评论 -
452. Minimum Number of Arrows to Burst Balloons(Medium)
题目描述](https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/)解题思路:这题与435. Non-overlapping Intervals类似,但是本题是求最小的共同重叠数。所以方法类似,只是得一直与第一个重叠的区间比较,没有和他重叠才更新prev。解题过程中出现的问题:想着跳出循环后再判断最后一个区间的情况,最后发现不需要。class Solution {public:原创 2021-10-07 20:59:18 · 109 阅读 · 0 评论 -
605. Can Place Flowers(Easy)
题目描述解题思路:计算两个1之间的下标差,利用数学规律解题。在两个1中间时,可以中的花数目=(blank-1)/2在两边时=blank/2。向下取整解题过程中遇见的问题:本来是想记录两个1之间blank的数量来进行计算,后面考虑到特殊情况时(两边没有1的时候)发现可以用下标差来计算。特殊情况:左边没有1,可以令初始下标=-2来解决 右边没有1,跳出循环后再进行一次计算可以栽的花=(i-prev-1)/2向下取整。注意跳出循环时的i已经加1完的时候了,等价于blank/原创 2021-10-07 20:05:24 · 105 阅读 · 0 评论 -
435.Non-overlapping Intervals(Medium)
题目描述解题思路:本来觉得应该按长度来排序,然后如果有重叠则删去后面长的区间比较节省。那么我就得解决以下问题:排序问题用什么来标记已经出现的序列。(两个数组一正一负,出现的地方标1)判断重叠,重复现象。但是没有体现贪心算法。正解:先按首/尾排序再按长度排序,这样既不用记录已出现的区域,又能轻松判断第三点(后面区域的首在前面的区间里就算重叠)。class Solution {public: int eraseOverlapIntervals(vector<vect原创 2021-10-07 17:36:36 · 112 阅读 · 0 评论 -
135.Candy(Hard)
135. Candy类型:贪心算法中的分配问题。想到了用从左到右再从右到左两次遍历来更新糖果数,但过程中犯了两个错误:最初想当然的把比左/右边rating大的就直接加1,没考虑糖果数量也得比左/右的大。遍历时比较更新糖果数的对象错了,应该是更新后面要继续和别人比的那个人的糖果数,而不是比完了的那个人的糖果数,不然没有起到串联作用。class Solution {public: int candy(vector<int>& ratings) { int原创 2021-10-07 16:33:15 · 87 阅读 · 0 评论