首先要感谢《谷歌高畅Leetcode刷题笔记》的作者,本系列文章的发表是基于他的C++版本提出的python版本,并且添加一些自己的总结。贪心算法☺ 贪心算法的思想就是,每一步最优就可以达到全局最优。贪心,顾名思义,就是每一步都很贪心,也就是每一步都按照它认为可以达到最优的方法进行。练习题一 455分配问题假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多
转载 2023-07-21 23:58:11
19阅读
题目一.分糖果 已知一些孩子和一些糖果,每个孩子有需求因子g,每个糖果有大小s,当某个糖果的大小s>= 某个孩子的需求因子g时,代表该糖果可以满足该孩子;求使用这些糖果,最多能满足多少孩子?(注意,某个孩子最多只能用1个糖果满足) 例如,需求因子数组g=【5,10,2,9,15,9】;糖果大小数组s ...
转载 2021-08-10 15:51:00
339阅读
2评论
❝通知:一些录友表示经常看不到每天的文章,现在公众号已经不按照发送时间推荐了,而是根据一些规则乱序推送,所以可能关注了「代码随想录」也一直看不到文章,建议把「代码随想录」设置星标哈,设置星标之后,每天就按发文时间推送了,Carl每天都是定时8:35发送的,嗷嗷准时!❞135.分发糖果链接:https://leetcode-cn.com/problems/candy/老师想给孩子们分发糖果,有N个孩
原创 2020-12-28 19:41:25
316阅读
135. 分发糖果链接:https://leetcode-cn.com/problems/candy/老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?示例 1:输入: [1,0,2]
原创 2021-03-02 13:35:57
770阅读
leetcode-贪心算法길 (Song by 아이유, 헨리, 조현아, 양다일) 星空拓展知识:贪心算法贪心算法(贪婪算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。要点:1、在对问题求解时,总是做出在当前看来最好的选择。即贪心算法不从整体最优上加以考虑。2、贪心算法所作出的是在某种意义上的局部最优解。贪心算法: 1、
分发糖果题目介绍n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。测试用例算法思想:分发糖果贪心算法思想的典型例题。根据题意我
原创 精选 2023-11-14 21:41:49
385阅读
1点赞
一,问题描述:题目:Leetcode 第135题难度:困难n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。示例1:输入:ratings = [1,0,2] 输出:5 解释:你可以分别给第一个、
思路: 从左至右扫描,如果紧挨着的左 >右 就将左++ 同理,从右至左 若相邻右> 左 则右++ 最后一人再分一个算法实现如下:public static int dispatchCandies(int[] a){ int sum = 0; int[] b = new int[a.length];//每人的分到的糖果数组for (int i = 1; i< a.length; i
转载 2023-06-11 19:52:58
124阅读
前言贪心算法贪心思想,即采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。以下是我在leetcode上面做过的一些经典贪心算法类型题,在此将解题思路分享出来,如有不正确的地方欢迎指正。455.Assign cookies(Easy)题目描述有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个大小。每个孩子只能吃一个饼干,且只有饼干的大小不小于孩子的饥饿度时,这
贪心算法贪心选择性质 在求解一个最优化的问题中,我们使用贪心的方式选择了一组内容后不会影响剩余子问题的求解。 如
原创 2022-09-08 10:02:44
93阅读
贪心算法解分发糖果问题
原创 2021-06-15 00:15:18
754阅读
题目:    圣诞节来临了,在城市A中,圣诞老人准备分发糖果。现在有多箱不同的糖果,每一种糖果都有自己的价值和重量。每箱糖果都可以拆分成任意散装组合带走。圣诞老人的驯鹿最多只能承受一定重量的糖果。请问圣诞老人最多能带走多大价值的糖果。输入数据:    输入的第一行由两个部分组成,分别为糖果箱数正整数n(1<=n<=100),驯鹿能承受的最大重量正
转载 2023-08-31 16:08:09
184阅读
搞定大厂算法面试之leetcode精讲4.贪心目录:1.开篇介绍2.时间空间复杂度3.动态规划4.贪心5.二分查找6.深度优先&广度优先7.双指针8.滑动窗口9.位运算10.递归&分治11剪枝&回溯12.堆13.单调栈14.排序算法15.链表16.set&map17.栈18.队列19.数组20.字符串21.树22.字典树23.并查集24.其他类型题什么是贪心算法贪心
最长的链646. Maximum Length of Pair Chain(Medium)You are given n pairs of numbers. In every pair, the first number is always smaller than the second number.Now, we define a pair (c, d) can follow anoth...
原创 2021-07-12 15:02:35
300阅读
LeetCode 135:分发糖果(困难)题目描述老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先
原创 2022-11-01 23:59:19
91阅读
求解最优化的问题常常会有一系列的步骤,而每个步骤往往会面临着选择。而贪心算法就是这样的算法,它在每一步都做出最优解,也就是说,它总是做出局部最优解,寄希望于通过局部最优解来获得全局最优解。我们首先举个栗子:调度竞争资源来完成任务,比如我们要利用有限的资源(如一个阶梯教室)来实现任务(举办活动),每个活动的时间不一样,分别有开始时间和就结束时间,拿如何得到最优解呢?我们看到虽然用动态规划来求解活动选
文章目录贪心算法算法实战——455.分发饼干暴力解法优化算法 贪心算法关于贪心算法,我们先看一个例子。假设我们有一个可以容纳 100kg 物品的背包,可以装各种物品。我们有以下 5 种豆子,每种豆子的总量和总价值都各不相同。为了让背包中所装物品的总价值最大,我们如何选择在背包中装哪些豆子?每种豆子又该装多少呢?实际上,这个问题很简单,我估计你一下子就能想出来,没错,我们只要先算一算每个物品的单价
贪心算法一、基本思想      所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状
There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to tat least one ca...
原创 2023-06-07 15:47:27
120阅读
文章目录一、入门T455. 分发饼干二、中等1. 序列问题376. 摆动序列2. 两个维度权衡问题T406. 根据身高重建队列3. 股票问题三、进阶T53. 最大子数组和(dp或者贪心)T134. 加油站T968. 监控二叉树0. 区间问题T55. 跳跃游戏 (能否到达)T45. 跳跃游戏Ⅱ ****T452. 用最少数量的箭引爆气球T435. 无重叠区间T763. 划分字母区间T56. 合并区
  • 1
  • 2
  • 3
  • 4
  • 5