贪心算法
文章平均质量分 60
贪心算法
ggaoda
这个作者很懒,什么都没留下…
展开
-
leetcode-买卖股票的最佳时机含手续费
给定一个整数数组 ,其中 表示第 天的股票价格 ;整数 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例2:思路:股票类问题的一类(含手续费),我们同样得可以画出状态机转换图:表示第天手里没股票的状态表示第天手里有股票的状态初始化好第0天的状态即可遍历每天的股票更新dp,详细代原创 2022-07-14 12:23:58 · 135 阅读 · 0 评论 -
leetcode-646. 最长数对链
给出 个数对。 在每一个数对中,第一个数字总是比第二个数字小。现在,我们定义一种跟随关系,当且仅当 时,数对才可以跟在 后面。我们用这种形式来构造一个数对链。给定一个数对集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。思路:这道题和leetcode-300.最长子序列是一样的,首先明确dp是指什么,表示以这个数对结尾的最长链长度,和300题一样,我们也需要定义一个来同步更新我们需要的最最长链详细思路可以参看300题的解答:leetcod原创 2022-07-13 12:13:43 · 113 阅读 · 0 评论 -
leetcode-376.摆动序列
贪心算法题目详情如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3)是正负交替出现的。相反,[1, 4, 7, 2, 5]和[1, 7, 4, 5, 5]不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。子序列 可以通过从原始序列原创 2022-03-28 17:19:56 · 560 阅读 · 0 评论 -
贪心算法 leetcode-455. 分发饼干
贪心算法分配问题题目详情假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干.对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干j 分配给孩子i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值示例1:输入: g = [1,2,3], s = [1,1]输出: 1解释: 你有三个孩子和两块小饼干原创 2022-03-18 15:49:43 · 212 阅读 · 0 评论 -
leetcode-665.非递减数列
贪心算法数列修改满足要求问题题目详情给你一个长度为 n的整数数组 nums ,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。示例2:输入: nums = [4,2,1]原创 2022-03-23 19:27:12 · 720 阅读 · 0 评论 -
leetcode-452. 用最少数量的箭引爆气球
贪心算法变相区间问题和leetcode-435解法相同题目详情在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射原创 2022-03-20 17:59:56 · 269 阅读 · 0 评论 -
leetcode-763. 划分字母区间
贪心算法划分字母区间题目详情字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。示例:输入:S = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:划分结果为 "ababcbaca", "defegde", "hijhklij"。每个字母最多出现在一个片段中。像 "ababcbacadefegde", "hijhklij" 的划分是错误的,因为划分的片段数较少。我原创 2022-03-22 17:06:47 · 567 阅读 · 0 评论 -
leetcode-135. 分发糖果
贪心算法分配问题题目详情n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。示例1:输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。示例2:输入:ratings = [1,2,2]输出:4解释:你可以原创 2022-03-18 16:34:15 · 879 阅读 · 0 评论 -
leetcode-435. 无重叠区间
贪心算法区间问题题目详情给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。示例1:输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例2:输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间原创 2022-03-20 16:01:41 · 231 阅读 · 0 评论 -
leetcode-122.买卖股票的最佳时机 II
贪心算法买卖股票问题题目详情给定一个数组 prices ,其中 prices[i] 表示股票第i 天的价格。在每一天,你可能会决定购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。返回 你能获得的 最大 利润 。示例1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随原创 2022-03-22 22:25:25 · 90 阅读 · 0 评论 -
leetcode-406.根据身高重建队列
贪心算法队列双条件排序问题题目详情假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj]是队列中第j个人的属性(queue[0] 是排在队列前面的人)。示例1:输入:people原创 2022-03-23 16:05:25 · 876 阅读 · 0 评论 -
leetcode-605. 种花问题
贪心算法种花问题题目详情假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给你一个整数数组 flowerbed 表示花坛,由若干 0 和1组成,其中0 表示没种植花,1 表示种植了花。另有一个数n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。示例1:输入:flowerbed = [1,0,0,0,1], n = 1输出:true示例2:输入:flowerbed =原创 2022-03-20 17:07:56 · 446 阅读 · 0 评论