当前位置: 首页 > news >正文

分发饼干(贪心算法+图解)

455. 分发饼干 - 力扣(LeetCode)

题目描述

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

 

样例输入

示例 1:

输入: g = [1,2,3], s = [1,1]
输出: 1
解释: 
你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。
所以你应该输出1。

示例 2:

输入: g = [1,2], s = [1,2,3]
输出: 2
解释: 
你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。
你拥有的饼干数量和尺寸都足以让所有孩子满足。
所以你应该输出2.

提示:

  • 1 <= g.length <= 3 * 104
  • 0 <= s.length <= 3 * 104
  • 1 <= g[i], s[j] <= 231 - 1

题解

贪心思想

首先对饼干的大小个孩子们的胃口大小从到大排序,遍历饼干数组,指针i指向当前的饼干,指针index指向当前的孩子,那么如果当前的饼干大小不能满足当前的孩子胃口,也就是s[i]<g[index],说明这块饼干也不能满足后边孩子的胃口(因为孩子的胃口是从小到大排列的),因此换下一块饼干继续判断(i++),否则就将当前饼干分给孩子,换下一个孩子继续判断(index++)

在整个遍历的过程中,由于饼干无论能不能分给孩子,都需要i++,因为如果饼干不能分给当前的孩子,那么i++直接换下一个饼干尝试,如果饼干分给了当前孩子,那么还是要i++,同时index++,取下一块饼干分给下一个孩子,故而整个遍历的时间是所有饼干的遍历时间

代码

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int index=0;for(int i=0;i<s.size();i++){if(index<g.size() && s[i]>=g[index])index++;}return index;}
};

http://www.lryc.cn/news/229863.html

相关文章:

  • vue项目路由使用history模式,nginx配置,刷新页面显示404
  • redis的redis.service配置
  • 高频SQL50题(基础版)-3
  • OpenMMlab导出yolov3模型并用onnxruntime和tensorrt推理
  • 单链表的插入删除
  • github使用手册
  • 怎样做ChatGPT应用开发?
  • 漏洞-任意账号注册
  • 一个关于jdbc操作mysql和java基础练手的通讯录管理系统小项目
  • C++用条件变量实现线程安全的queue容器
  • EDA实验-----3-8译码器设计(QuartusII)
  • NFTScan | 11.06~11.12 NFT 市场热点汇总
  • 2022年12月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 第三章 将对象映射到 XML - 使用列表或数组定义的属性
  • C/S架构学习之基于TCP的本地通信(客户机)
  • CCF 备忘
  • Spring Framework中的依赖注入:构造器注入 vs. Setter注入
  • Java学习之路 —— API篇
  • Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
  • DigitalVirt 日本 Lite VPS 测评
  • Ridgeline plot / 远山图 / 山脊图 怎么画?怎么优化?
  • 【STM32/FreeRTOS】SysTick定时器及FreeRTOS系统节拍
  • Vue3封装自定义指令+h()
  • 爆火的迅雷网盘推广,一手云盘app拉新推广渠道必备项目 学习资料
  • Jmeter 请求返回多字段 —— 传递登录接口!
  • es 7.0常用的命令
  • [文件读取]lanproxy 文件读取 (CVE-2021-3019)
  • 记录一种引起 CL.exe/ C++ 编译器无任何提示直接崩溃的问题
  • 【华为OD机试高分必刷题目】生理周期(C++-模拟迭代实现)
  • 【Vue】过滤器Filters