算法刷题之贪心算法
杰明学编程
这个作者很懒,什么都没留下…
展开
-
435. 无重叠区间
题目: 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 题解思路: 方法: 1.从区间集合 intvs 中选择一个区间 x,这个 x 是在当前所有区间中结束最早的(end 最小)。这就要对数组end部分排序。 2.把所有与 x 区间相交的区间从区间集合 intvs 中删除。 3.重复步骤 1 和 2,直到 intvs 为空为止。之前选出的那些 x 就是最大不相交子集。原创 2020-09-01 17:41:46 · 89 阅读 · 0 评论 -
55. 跳跃游戏
题目: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 题解思路: 方法一:贪心算法 1.如果数组某一点的值为2,就可以跳跃的距离是2,可以在后面两个位置中,选择跳跃。 2.所选择某一点进行跳跃,都要达到跳跃最大值,这个跳跃距离最大值要进行比较更新。 3.若可以跳跃到数组末,则返回成功,否则返回失败。 函数代码: class Solution { public: bool canJump(vector<原创 2020-08-17 19:14:56 · 182 阅读 · 0 评论