
贪心算法
文章平均质量分 50
贪心算法
@啊哈哈哈哈哈韩
目标是720篇笔记,冲就完了!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【刷题实录之贪心法】leecode452. 用最少数量的箭引爆气球
在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被引爆。解释:对于该样例,x = 6 可以射爆 [2,8],[1,6] 两个气球,以及 x = 11 射爆另外两个气球。输入:points = [[10,16],[2,8],[1,6],[7,12]]输入:points = [[1,2],[3,4],[5,6],[7,8]]输入:points = [[1,2],[2,3],[3,4],[4,5]]原创 2025-01-27 17:20:49 · 808 阅读 · 0 评论 -
【刷题实录之贪心法】leecode135. 分发糖果
需要两遍遍历,一次从前往后(向右看),一次从后往前(向左看),不能一次看两边,这会导致顾此失彼,向右看时保证右边大于左边时,一定有右边糖果比左边糖果多一颗,否则为1,因此局部最优:只要右边评分比左边大,右边的孩子就多一个糖果,全局最优:相邻的孩子中,评分高的右孩子获得比左边孩子更多的糖果。向左看时保证左边大于右边时,一定有左边糖果比右边糖果多一颗,否则不变即可,因此局部最优:只要左边评分比右边大,左边的孩子就多一个糖果,全局最优:相邻的孩子中,评分高的左孩子获得比右边孩子更多的糖果。原创 2025-01-27 00:14:10 · 340 阅读 · 0 评论 -
【刷题实录之贪心法】leecode134. 加油站
我们从 2 号加油站出发,可以获得 4 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。:本题与最大子数组之和那道题有点类似,在遍历数组时将已经遍历的元素分为两部分,即前部分和后部分,后部分是从从start开始元素到正在遍历的元素的数组,当这段数组之和小于0时,说明油不够走,将后部分加入前部分,并重置后部分,start+1,这样做就能找到正和,遍历完之时令总和等于前部分和加后部分和,若总和小于零说明无论如何油都是不够的,返回-1,否则返回start。原创 2025-01-26 22:36:15 · 328 阅读 · 0 评论 -
【刷题实录之贪心法】leecode45. 跳跃游戏 II
需要一个flag数组标记每个元素最少需要多少步才能到达,运用贪心的思路,局部最优:当前可移动距离尽可能多走,如果还没到终点,步数再加一。这个专栏主要是我在刷题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。:给定一个非负整数数组,你最初位于数组的第一个位置。你的目标是使用最少的跳跃次数到达数组的最后一个位置。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明: 假设你总是可以到达数组的最后一个位置。原创 2025-01-26 20:53:00 · 263 阅读 · 0 评论 -
【刷题实录之贪心法】leecode55. 跳跃游戏
本题从跳跃覆盖范围入手会更好思考,局部最优解:每次取最大跳跃步数(取最大覆盖范围),整体最优解:最后得到整体最大覆盖范围,看是否能到终点,设置flag数组判断元素是否被覆盖。这个专栏主要是我在刷题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。输入: [2,3,1,1,4]原创 2025-01-26 18:51:44 · 189 阅读 · 0 评论 -
【刷题实录之贪心法】leecode122. 买卖股票的最佳时机 II
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3。解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。输入: [7,1,5,3,6,4]输入: [1,2,3,4,5]原创 2025-01-26 15:55:18 · 279 阅读 · 0 评论 -
【刷题实录之贪心法】leecode53. 最大子数组和
这个专栏主要是我在刷题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。输入: [-2,1,-3,4,-1,2,1,-5,4]原创 2025-01-26 01:32:55 · 240 阅读 · 0 评论 -
【刷题实录之贪心法】leecode455. 分发饼干
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。输出: 1 解释:你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。解释:你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。输入: g = [1,2,3], s = [1,1]输入: g = [1,2], s = [1,2,3]原创 2025-01-25 23:23:33 · 493 阅读 · 0 评论 -
【刷题实录之贪心法】贪心法精华知识
贪心算法并没有固定的套路,所以唯一的难点就是如何通过局部最优,推出整体最优,那么如何能看出局部最优是否能推出整体最优呢?只能靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。这个专栏主要是我在刷题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!做题时不必这么理论化,最重要是想清楚局部最优是什么,如果推导出全局最优就够了。,如果想不到反例,那么就试一试贪心吧。:贪心的本质是选择每一阶段的。原创 2025-01-25 23:06:05 · 309 阅读 · 0 评论