
贪心
IAmParasite
这个作者很懒,什么都没留下…
展开
-
[贪心][排序]Offer 45.把数组排成最小的数
题面 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/ 题目分析 这道题目是贪心和排序的综合题目。 为什么贪心:我们在这里其实是按照另一种规则来进行排序,不妨用冒泡排序的思想来思考这个问题,通过不停的交换来最终实现从小到达的排序。 原先的从小到大排序肯定是不行的,我们需要重写排序的方法,那么具体按照什么方法来原创 2020-07-20 00:00:06 · 178 阅读 · 0 评论 -
[贪心算法]LeetCode 763.划分字母区间
题面 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。 链接:https://leetcode-cn.com/problems/partition-labels/ 题目分析 这道题目…自己一开始想对了,但是又想复杂了-_-记录一下 对于每一个字母而言,我们只关心最先开始出现的位置和最后出现的位置,在遍历的过程自然可以获取最先出现的位置了,所以无需记录。在拆分的过程中,我们维护一个已经遍历的字母的最后出现的位置,然原创 2020-07-14 21:14:25 · 273 阅读 · 0 评论 -
[贪心算法]LeetCode 376.摆动序列
题面 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)原创 2020-07-13 23:00:22 · 288 阅读 · 0 评论 -
[贪心算法][优先队列]LeetCode 1046.跳跃游戏
题面 有一堆石头,每块石头的重量都是正整数。 每一回合,从中选出两块 最重的 石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么重量为 x 的石头将会完全粉碎,而重量为 y 的石头新重量为 y-x。 最后,最多只会剩下一块石头。返回此石头的重量。如果没有石头剩下,就返回 0。 链接:https://leetcode-cn.com/problems/last-stone-wei原创 2020-07-13 20:44:29 · 154 阅读 · 0 评论 -
[贪心算法]LeetCode 45.跳跃游戏
题面 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 链接:https://leetcode-cn.com/problems/jump-game-ii 题目分析 做这道题目之前相信大家已经做过跳跃游戏的基础版了。我在基础版里面的主要思路是维护一个cur表示可以到达的最大位置: cclass Solution { public: bool canJump(vector<int>&a原创 2020-07-12 21:52:23 · 330 阅读 · 0 评论 -
[贪心+斐波那契]算法题
题面 小C是一个可爱的女孩,她特别喜欢世界上最稳定的图形:三角形。有一天她得到了n根木棍,她把这些木棍随意的摆放成一行。小K来和小C玩,他发现了这排木棍,突然想知道在一段区间[l,r]之间的木棍(即第L根到第R根木棍)是否可以组成一个三角形,小C表示她不会,所以请你帮忙。 输入 数据只有一组。 第一行只有一个数字N,代表一共有N根木棍,N<=100000。 第二行为N个数,代表每根木棍的长度。每根木棍的大小不超过1e18。 第三行为一个数字Q,代表询问数目,Q<=100000。 接下来的Q行,每原创 2020-07-03 23:26:12 · 476 阅读 · 0 评论