leetcode 455. 分发饼干 思考分析
目录
- 题目
- 自己的思路以及AC代码
- 参考思路
题目
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。
提示:
自己的思路以及AC代码
首先将数组s、g排序(按照值从小到大),这样就将小胃口孩子,小尺寸的饼干放在前面了。
接下来对饼干进行遍历:
如果这个饼干大于当前的孩子胃口,把它给这个孩子,转向下一个孩子,饼干也到下一个饼干。
如果不满足,孩子还是当前的孩子,饼干转到下一个饼干。
这样就能保证每个孩子吃到的是满足胃口的最小的尺寸饼干了。我想这也许就是贪心吧。
下面是AC代码:
class Solution {public:int findContentChildren(vector<int>& g, vector<int>& s) {//将孩子按照胃口大小排序,从小到大sort(g.begin(), g.end());//将饼干按照尺寸大小排序,从小到大sort(s.begin(), s.end());int i=0;for(int j=0;j<s.size();j++){if(i<g.size() && s[j] >= g[i]) {i++;}}return i; }
};
接下来看看我参考的公众号的思路:
参考思路
大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。
局部最优:大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个。
全局最优就是喂饱尽可能多的小孩。
从后向前遍历小孩数组,用大饼干优先满足胃口大的,并统计小孩数量。
这个思路正好和我是反过来的。
从代码实现上来说,我的外才能循环是饼干尺寸s,而这里的代码外层循环是胃口g。
class Solution {public:int findContentChildren(vector<int>& g, vector<int>& s) {//将孩子按照胃口大小排序,从小到大sort(g.begin(), g.end());//将饼干按照尺寸大小排序,从小到大sort(s.begin(), s.end());//饼干从最大的开始int j=s.size()-1;int result=0;//胃口从大到小for(int i=g.size()-1;i<g.size();i--){if(j>=0 && s[j] >= g[i]) {j--;result++;}}return result; }
};
leetcode 455. 分发饼干 思考分析相关推荐
- leetcode: 455. 分发饼干
455. 分发饼干 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/assign-cookies/ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干 ...
- Java实现 LeetCode 455 分发饼干
455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 ...
- LeetCode 455. 分发饼干(贪心)
1. 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j , ...
- Leetcode 455. 分发饼干 解题思路及C++实现
解题思路: 这道题跟"田忌赛马"是一样的,对于孩子的胃口.饼干的尺寸这两个容器(数组),先进行排序,然后尽量用小尺寸的饼干满足小胃口的孩子,所以会用到贪心策略. 因为题目中并没有说 ...
- Leetcode 455.分发饼干 (每日一题 20210708 同类型题)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j,都有一个尺寸 ...
- leetcode 455. 分发饼干(贪心算法)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j,都有一个尺寸 ...
- leetcode 455 分发饼干(c++和python) 贪心算法
目录 1 贪心算法: 2 题目描述 3 解题思路 4 c++ 5 python 1 贪心算法: 保证每次局部操作是最优解,从而是最终得到的结果是全局最优解. 2 题目描述 有一群孩子和一堆饼干,每个孩 ...
- 2022-4-9 Leetcode 455.分发饼干
第一版,没有想到可以用后面的饼干来满足前面的人 class Solution {public:int findContentChildren(vector<int>& g, vec ...
- LeetCode 455. 分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...
最新文章
- 计算机对英语口语考试成绩,英语口语考试面对“电脑考官” 有何临场技巧
- Nginx+win10安装配置
- VTK:隐式二次元用法实战
- 【代码笔记】Web-CSS-CSS 链接(link)
- logback配置文件详解_Log4j2使用详解
- 编程判断元素归类_编程练习-判断是否为易混淆数
- nc 结合htc hts 反弹shell(内网代理环境下)
- 一图看懂边缘计算整体架构
- 《天天数学》连载11:一月十一日
- Java对数组的操作(一)
- android4.0 禁止横竖屏切换使用 android:configChanges=orientation|keyboardHidden无效
- 扩展php-bcmath,centos安装PHP扩展(bcmath)
- Pytho爬虫-4567电影网电影信息爬取
- C语言中的floor函数与cei函数
- A. Harry Klopf是谁?
- 浅析乡镇房地产产业现状及其对乡镇经济发展的推动力
- 如何做私域?私域流量运营怎么做?为什么今年都布局企业微信运营?(附企微运营干货)
- 高中关于人工智能方面的课题_人工智能课题及其认识意义.doc
- 全自动过滤器:全自动叠片过滤器工作原理及应用范围
- 织梦php模板在哪个文件夹,织梦模板如何修改默认templets模板文件夹名称的方法...
热门文章
- 七夕(情人节)表白女朋友,程序员应该如何装一波13
- oracle修改某表中的顺序,oracle 数据库 , 表中字段顺序修改
- 大津阈值分割matlab实验,OTSU(大津法)分割源程序(MATLAB版)
- java properties 保存_Java 读写Properties配置文件
- 宝塔php gd库,宝塔面板安装 EasyImag – 一款最简单图床的安装体验
- 详细解读css中的浮动以及清除浮动的方法
- 采访田飞师兄有感 ——by 李皈颖
- html笔记(一)html4+css2.0、css基础和属性、盒模型
- ASP.NET Core Razor Pages
- freopen()函数在ACM中的使用