leetcode 455 分发饼干(c++和python) 贪心算法
目录
1 贪心算法:
2 题目描述
3 解题思路
4 c++
5 python
1 贪心算法:
保证每次局部操作是最优解,从而是最终得到的结果是全局最优解。
2 题目描述
有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个大小。每个孩子只能吃
一个饼干,且只有饼干的大小不小于孩子的饥饿度时,这个孩子才能吃饱。求解最多有多少孩子
可以吃饱。
输入输出样例
输入两个数组,分别代表孩子的饥饿度和饼干的大小。输出最多有多少孩子可以吃饱的数
量。
Input: [1,2], [1,2,3]
Output: 2
3 解题思路
每次用最小的饼干,分配给最不饿的小孩,达到资源的最大利用率,贪心策略是:给剩余孩子里面最小饥饿度的孩子分配最小的能饱腹的饼干。
具体步骤:
- 从小到大排序孩子和饼干;
- 用两个指针遍历孩子和饼干,满足了孩子,则孩子指针和饼干指针都往后,不满足,则饼干指针往后找更大饼干。
4 c++
执行用时:20 ms, 在所有 C++ 提交中击败了95.87%的用户
内存消耗:17 MB, 在所有 C++ 提交中击败了91.29%的用户
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {// 排序sort(g.begin(), g.end()); // 逆序rbegin()sort(s.begin(), s.end());// 遍历孩子和饼干// 两个指针分别指针有序的孩子和有序的饼干int child_idx = 0;int cooky_idx = 0;while (child_idx < g.size() && cooky_idx < s.size()){if (g[child_idx] <= s[cooky_idx]) // 当前孩子的胃口小于当前的饼干大小{child_idx++; // 下一个孩子cooky_idx++; // 下一饼干}else // 饼干小了{cooky_idx++; // 找更大饼干}}return child_idx;}
};
5 python
执行用时:36 ms, 在所有 Python 提交中击败了82.72%的用户
内存消耗:13.9 MB, 在所有 Python 提交中击败了84.74%的用户
class Solution(object):def findContentChildren(self, g, s):""":type g: List[int]:type s: List[int]:rtype: int"""# 排序g = sorted(g)s = sorted(s)# 两个指针,分别指向有序孩子,和有序饼干child_idx = 0 cooky_idx = 0 # 遍历孩子和饼干,满足了孩子,则孩子指针和饼干指针都往后,不满足,则饼干指针往后找更大饼干。while child_idx < len(g) and cooky_idx < len(s): if g[child_idx] <= s[cooky_idx]:child_idx += 1 # 分配,下一个孩子cooky_idx += 1 # 下一个饼干else:cooky_idx += 1 # 找更大饼干# 要么孩子遍历完了,则全部吃饱,要么饼干分配完了。return child_idx
leetcode 455 分发饼干(c++和python) 贪心算法相关推荐
- 力扣455.分发饼干(java)-贪心算法思想及基本步骤
文章目录 贪心算法核心思想 基本步骤 455.分发饼干(Java) 1.需要考虑的问题 2.方案(序号分别与问题对应) 贪心算法核心思想 贪心算法的基本思想是每一步都做出当时看起来最佳的选择,可以理解 ...
- leetcode: 455. 分发饼干
455. 分发饼干 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/assign-cookies/ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干 ...
- Java实现 LeetCode 455 分发饼干
455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 ...
- LeetCode 455. 分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...
- LeetCode 455. 分发饼干(贪心)
1. 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j , ...
- leetcode 455. 分发饼干(贪心算法)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j,都有一个尺寸 ...
- 148. Leetcode 455. 分发饼干 (贪心算法-基础题目)
class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:g.sort()s.sort()m ...
- Leetcode 455. 分发饼干 解题思路及C++实现
解题思路: 这道题跟"田忌赛马"是一样的,对于孩子的胃口.饼干的尺寸这两个容器(数组),先进行排序,然后尽量用小尺寸的饼干满足小胃口的孩子,所以会用到贪心策略. 因为题目中并没有说 ...
- leetcode 455. 分发饼干 思考分析
目录 题目 自己的思路以及AC代码 参考思路 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足 ...
最新文章
- Apache、php、mysql默认安装路径
- AI前沿:数据智能产品与技术漫谈
- python自学网站推荐-杭州python自学网站
- 【Linux】Linux统计文件夹、文件数量的命令
- Composer The openssl extension is required for SSL/TLS protection
- Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar
- linux日志不区分大小写,windows系统迁移到linux下,Nginx实现url请求不区分大小写...
- R in action读书笔记(3)-第六章:基本图形
- 不同笔记本电脑BIOS的进入方法:
- 常用排序算法的Java实现 - 1
- 电动汽车仿真系列-电动汽车复合电源的建模与仿真研究
- 开源免费制造业erp erp5的优点分析
- 搞明白activated和deactivated
- 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
- c语言课程设计作业医院挂号系统,c语言课程设计机房机位预定系统绝对正确,附源代码...
- Skywalking链路追踪自身耗时和总耗时算法分析
- 人力面试时常规的面试题
- 计算机科学协会入会申请书,计算机协会会长申请书
- C++常用 math 函数
- 两种图像骨架提取算法的研究原理及实现
热门文章
- 如何开通聚合商家收款码?
- 通过Stream流找出集合中对象中某个属性重复的值.
- log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
- 网络视频聊天室的开发指南
- 【Linux\云服务器】CentOS 7.2 64位 可视化桌面的安装与卸载
- POJ 2395 Out of Hay 最小生成树(prime算法)
- 风浪模拟数据准备步骤(MOW/SWAN):如何从ECMWF-EAR下载数据
- 王晓昀-PowerDesigner与模型驱动开发-UMLChina讲座-音频和幻灯
- aria2 txt导入_aria2 让下载提速
- 校园网络的未来发展方向