目录

1 贪心算法:

2 题目描述

3 解题思路

4 c++

5 python


1 贪心算法:

保证每次局部操作是最优解,从而是最终得到的结果是全局最优解。

2 题目描述

有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个大小。每个孩子只能吃
一个饼干,且只有饼干的大小不小于孩子的饥饿度时,这个孩子才能吃饱。求解最多有多少孩子
可以吃饱。

输入输出样例
输入两个数组,分别代表孩子的饥饿度和饼干的大小。输出最多有多少孩子可以吃饱的数
量。
Input: [1,2], [1,2,3]
Output: 2

3 解题思路

每次用最小的饼干,分配给最不饿的小孩,达到资源的最大利用率,贪心策略是:给剩余孩子里面最小饥饿度的孩子分配最小的能饱腹的饼干。

具体步骤:

  1. 从小到大排序孩子和饼干;
  2. 两个指针遍历孩子和饼干,满足了孩子,则孩子指针和饼干指针都往后,不满足,则饼干指针往后找更大饼干。

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) 贪心算法相关推荐

  1. 力扣455.分发饼干(java)-贪心算法思想及基本步骤

    文章目录 贪心算法核心思想 基本步骤 455.分发饼干(Java) 1.需要考虑的问题 2.方案(序号分别与问题对应) 贪心算法核心思想 贪心算法的基本思想是每一步都做出当时看起来最佳的选择,可以理解 ...

  2. leetcode: 455. 分发饼干

    455. 分发饼干 来源:力扣(LeetCode) 链接: https://leetcode.cn/problems/assign-cookies/ 假设你是一位很棒的家长,想要给你的孩子们一些小饼干 ...

  3. Java实现 LeetCode 455 分发饼干

    455. 分发饼干 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 ...

  4. LeetCode 455. 分发饼干

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...

  5. LeetCode 455. 分发饼干(贪心)

    1. 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j , ...

  6. leetcode 455. 分发饼干(贪心算法)

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j,都有一个尺寸 ...

  7. 148. Leetcode 455. 分发饼干 (贪心算法-基础题目)

    class Solution:def findContentChildren(self, g: List[int], s: List[int]) -> int:g.sort()s.sort()m ...

  8. Leetcode 455. 分发饼干 解题思路及C++实现

    解题思路: 这道题跟"田忌赛马"是一样的,对于孩子的胃口.饼干的尺寸这两个容器(数组),先进行排序,然后尽量用小尺寸的饼干满足小胃口的孩子,所以会用到贪心策略. 因为题目中并没有说 ...

  9. leetcode 455. 分发饼干 思考分析

    目录 题目 自己的思路以及AC代码 参考思路 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干. 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足 ...

最新文章

  1. Apache、php、mysql默认安装路径
  2. AI前沿:数据智能产品与技术漫谈
  3. python自学网站推荐-杭州python自学网站
  4. 【Linux】Linux统计文件夹、文件数量的命令
  5. Composer The openssl extension is required for SSL/TLS protection
  6. Java黑皮书课后题第9章:*9.5(使用GregorianCalendar类)Java API中有一个位于包java.util中的类GregorianCalendar
  7. linux日志不区分大小写,windows系统迁移到linux下,Nginx实现url请求不区分大小写...
  8. R in action读书笔记(3)-第六章:基本图形
  9. 不同笔记本电脑BIOS的进入方法:
  10. 常用排序算法的Java实现 - 1
  11. 电动汽车仿真系列-电动汽车复合电源的建模与仿真研究
  12. 开源免费制造业erp erp5的优点分析
  13. 搞明白activated和deactivated
  14. 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
  15. c语言课程设计作业医院挂号系统,c语言课程设计机房机位预定系统绝对正确,附源代码...
  16. Skywalking链路追踪自身耗时和总耗时算法分析
  17. 人力面试时常规的面试题
  18. 计算机科学协会入会申请书,计算机协会会长申请书
  19. C++常用 math 函数
  20. 两种图像骨架提取算法的研究原理及实现

热门文章

  1. 如何开通聚合商家收款码?
  2. 通过Stream流找出集合中对象中某个属性重复的值.
  3. log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
  4. 网络视频聊天室的开发指南
  5. 【Linux\云服务器】CentOS 7.2 64位 可视化桌面的安装与卸载
  6. POJ 2395 Out of Hay 最小生成树(prime算法)
  7. 风浪模拟数据准备步骤(MOW/SWAN):如何从ECMWF-EAR下载数据
  8. 王晓昀-PowerDesigner与模型驱动开发-UMLChina讲座-音频和幻灯
  9. aria2 txt导入_aria2 让下载提速
  10. 校园网络的未来发展方向