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

力扣第455题 分发饼干 c++ 贪心 经典题

题目

455. 分发饼干

简单

相关标签

贪心   数组   双指针   排序

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

对每个孩子 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

思路和解题方法

  • 为了使更多的孩子得到满足,我们应该让每个孩子获得刚好满足他胃口的最小饼干,即使用尺寸最小的能够满足他的饼干。因此,我们需要将孩子和饼干都按照升序排序,然后从胃口最大的孩子和尺寸最大的饼干开始,尝试将饼干分配给孩子。
  • 具体而言,我们可以对孩子的胃口和饼干的尺寸进行升序排序。然后,从最大胃口的孩子开始遍历孩子列表,对于每个孩子,检查所有可用的饼干,从大到小遍历饼干列表,直到找到一个满足当前孩子胃口的最小饼干,将其分配给孩子,并将可用饼干数量减一。继续遍历下一个孩子,重复上述过程,直到遍历完所有的孩子或没有可用饼干为止。

复杂度

        时间复杂度:

                O(n*logn)

时间复杂度:算法中需要对孩子胃口和饼干尺寸进行排序,排序的时间复杂度为O(nlogn)。然后进行一次遍历,遍历的时间复杂度为O(n)。因此总的时间复杂度为O(nlogn)。

        空间复杂度

                O(1)

空间复杂度:无需而外空间

c++ 代码

class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {// 对孩子胃口和饼干尺寸进行升序排序sort(g.begin(), g.end());sort(s.begin(), s.end());// 初始化变量,index表示当前可用的最大饼干下标,ans表示满足条件的孩子数量int index = s.size() - 1;int ans = 0;// 从最大胃口的孩子开始遍历for (int i = g.size() - 1; i >= 0; i--) {// 如果还有可用的饼干且当前饼干满足当前孩子的胃口if (index >= 0 && s[index] >= g[i]) {// 将饼干分配给孩子ans++;// 更新可用的最大饼干下标index--;}}return ans;}
};

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。

相关文章:

力扣第455题 分发饼干 c++ 贪心 经典题

题目 455. 分发饼干 简单 相关标签 贪心 数组 双指针 排序 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干…...

Netty系列教程之NIO基础知识

近30集的孙哥视频课程&#xff0c;看完一集整理一集来的&#xff0c;内容有点多&#xff0c;请大家放心食用~ 1. 网络通讯的演变 1.1 多线程版网络通讯 在传统的开发模式中&#xff0c;客户端发起一个 HTTP 请求的过程就是建立一个 socket 通信的过程&#xff0c;服务端在建立…...

【题解 树形dp 拆位】 树上异或

「KDOI-06-S」树上异或 题目描述 给定一棵包含 n n n 个节点的树&#xff0c;第 i i i 个点有一个点权 x i x_i xi​。 对于树上的 n − 1 n-1 n−1 条边&#xff0c;每条边选择删除或不删除&#xff0c;有 2 n − 1 2^{n-1} 2n−1 种选择是否删除每条边的方案。 对于…...

SpringBoot项目访问后端页面404

检查项目的路径和mapper映射路径没问题后&#xff0c;发现本级pom文件没有加入web启动模块的pom文件中 maven做项目控制时&#xff0c;要注意将maven模块加入到web启动模块中...

设计模式-综合应用(一)

介绍 使用jQuery做一个模拟购物车的示例 用到的设计模式 工厂模式 单例模式装饰器模式 观察者模式状态模式 模板方法模式 代理模式 UML类图...

大数据Flink(一百):SQL自定义函数(UDF)和标量函数(Scalar Function)

文章目录 SQL自定义函数(UDF)和标量函数(Scalar Function)...

14、Set 和 Map 数据结构

文章目录 14、Set 和 Map 数据结构1. Set1.1 基本用法☆☆☆ 值唯一&#xff0c;没有重复的值☆☆☆ 接受数组、具有 iterable 接口的数据结构☆☆☆ 数组去重1&#xff1a;[...new Set(array)]☆☆☆ 字符串去重&#xff1a;[...new Set(ababbc)].join()☆ 两个对象总是不相等…...

数据结构与算法设计分析——动态规划

目录 一、动态规划的定义二、动态规划的基本要素和主要步骤&#xff08;一&#xff09;最优子结构&#xff08;二&#xff09;重叠子问题 三、贪心法、分治法和动态规划的对比&#xff08;一&#xff09;贪心法&#xff08;二&#xff09;分治法&#xff08;三&#xff09;动态…...

PHPExcel 字母列不够用,针对 AA、AB、AC ... ZZ 这样的列

在PHPExcel 导出功能中&#xff0c;如果字段超过26个字母时&#xff0c;会出现字母不够用A~Z后 AA~AZ来添加后续字段 php中&#xff0c;chr() 函数从指定 ASCII 值返回字符&#xff0c;可以自定义一个方法来返回对应的字母 // $num 列数 1,2,3,4,5,6,7...... function getCol…...

fastdds源码编译安装

如何根据源码编译 fastdds 如何根据源码编译 fastdds 这里是为了根据源码编译一个 fastdds 。 fastdds 依赖 fastcdr Asio TinyXMl2 下载 fastdds 源码 git clone gitgithub.com:eProsima/Fast-DDS.git 进入 下载好的 fastdds 中执行 git submodule update --init --recurs…...

第二证券:风电概念强势拉升,威力传动“20cm”涨停,双一科技等大涨

风电概念20日盘中强势拉升&#xff0c;到发稿&#xff0c;威力传动“20cm”涨停&#xff0c;双一科技涨超17%&#xff0c;顺发恒业亦涨停&#xff0c;金雷股份、大金重工涨约7%&#xff0c;新强联、海力风电涨超5%。 音讯面上&#xff0c;9月以来江苏、广东海风项目加快推动&a…...

DataFrame窗口函数操作

文章最前&#xff1a; 我是Octopus&#xff0c;这个名字来源于我的中文名--章鱼&#xff1b;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github &#xff1b;这博客是记录我学习的点点滴滴&#xff0c;如果您对 Python、Java、AI、算法有兴趣&#xff0c;可以关注我的…...

【德哥说库系列】-RHEL8环境源码编译安装MySQL8.0

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…...

Sandboxie+Buster Sandbox Analyzer打造个人沙箱

一、运行环境和需要安装的软件 实验环境&#xff1a;win7_x32或win7_x64 用到的软件&#xff1a;WinPcap_4_1_3.exe、Sandboxie-3-70.exe、Buster Sandbox Analyzer 重点是Sandboxie必须是3.70版本。下载地址&#xff1a;https://github.com/sandboxie-plus/sandboxie-old/blo…...

源码解析flink的GenericWriteAheadSink为什么做不到精确一次输出

背景 GenericWriteAheadSink是可以用于几乎是精准一次输出的场景&#xff0c;为什么说是几乎精准一次呢&#xff1f;我们从源码的角度分析一下 GenericWriteAheadSink做不到精准一次输出的原因 首先我们看一下flink检查点完成后通知GenericWriteAheadSink开始进行分段的记录…...

C#经典十大排序算法(完结)

C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法&#xff0c;它的实现原理比较简单。核心思想是通过相邻元素的比较和交换来将最大&#xff08;或最小&#xff09;的元素逐步"冒泡"到数列的末尾。 详细文章描述 https://mp.weixin.qq.com/s/z_LPZ6QUFNJcw…...

C/C++文件操作(细节满满,part2)

该文章上一篇&#xff1a;C/C文件操作&#xff08;细节满满&#xff0c;part1&#xff09;_仍有未知等待探索的博客-CSDN博客 个人主页&#xff1a;仍有未知等待探索_C语言疑难,数据结构,小项目-CSDN博客 专题分栏&#xff1a;C语言疑难_仍有未知等待探索的博客-CSDN博客 目录 …...

web前端面试-- 手写原生Javascript方法(new、Object.create)

web面试题 本人是一个web前端开发工程师&#xff0c;主要是vue框架&#xff0c;整理了一些面试题&#xff0c;今后也会一直更新&#xff0c;有好题目的同学欢迎评论区分享 ;-&#xff09; web面试题专栏&#xff1a;点击此处 手动实现Object.create 通过Object.create&#…...

C++前缀和算法的应用:得到连续 K 个 1 的最少相邻交换次数 原理源码测试用例

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 滑动窗口 题目 给你一个整数数组 nums 和一个整数 k 。 nums 仅包含 0 和 1 。每一次移动&#xff0c;你可以选择 相邻 两个数字并将它们交换。 请你返回使 nums 中包…...

目标检测YOLO实战应用案例100讲-基于YOLOv5的航拍图像旋转目标检测

目录 前言 国内外研究历史与现状 目标检测技术的研究历史与现状...

Phi-3.5-mini-instruct实战案例:Gradio ChatInterface多模态扩展预留接口

Phi-3.5-mini-instruct实战案例&#xff1a;Gradio ChatInterface多模态扩展预留接口 1. 项目概述 Phi-3.5-mini-instruct是微软推出的轻量级开源指令微调大模型&#xff0c;在长上下文代码理解&#xff08;RepoQA&#xff09;、多语言MMLU等基准测试中表现优异&#xff0c;显…...

NVIDIA Profile Inspector深度解析:高级显卡配置文件管理架构与性能调优实战

NVIDIA Profile Inspector深度解析&#xff1a;高级显卡配置文件管理架构与性能调优实战 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款面向技术专家和游戏发烧友的专业…...

哔哩下载姬终极指南:3步快速掌握B站视频高效下载技巧

哔哩下载姬终极指南&#xff1a;3步快速掌握B站视频高效下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#x…...

免费小说下载器终极指南:如何轻松保存你喜欢的网络小说

免费小说下载器终极指南&#xff1a;如何轻松保存你喜欢的网络小说 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经遇到过这样的情况&#xff1a;正在追更的小说突然被网站…...

墨语灵犀效果对比评测:AI翻译中‘文气’‘留白’‘韵律’三大维度拆解

墨语灵犀效果对比评测&#xff1a;AI翻译中‘文气’‘留白’‘韵律’三大维度拆解 1. 评测背景与工具介绍 在AI翻译工具层出不穷的今天&#xff0c;大多数产品仍停留在"准确传达语义"的层面。然而&#xff0c;真正的文学翻译需要更多——它需要保留原文的韵味、节奏…...

LangChain 怎么构建 Skill 和引入工具:从工具接入到开箱即用的10个优质Skill

别再只会写Function Call了!LangChain Skill构建全指南:从工具接入到开箱即用的10个优质Skill 目录 别再只会写Function Call了!LangChain Skill构建全指南:从工具接入到开箱即用的10个优质Skill 一、先搞懂:Tool和Skill到底有什么区别? 二、用LangChain构建Skill的3种标…...

ROS驱动配置与Kinect连接指南

nano端ssh nano192.168.31.150性能模式# 开启最大性能模式 (10W 模式) sudo nvpmodel -m 0 # 强制将 CPU/GPU 频率锁定到最高 sudo jetson_clockskinect 驱动cd catkin_ws source ./devel/setup.bash roslaunch freenect_launch freenect.launch depth_registration:true data…...

郭老师-人脉的本质:你强,世界才温柔

人脉的本质&#xff1a;你强&#xff0c;世界才温柔“任何社交关系&#xff0c;都是你实力的影子。”&#x1f32a;️ 人脉泡沫&#xff1a;一场自我感动的幻觉 我们曾深信&#xff1a; “朋友多了路好走”“多个朋友多条路”“混圈子找机会” 于是—— 赔笑脸加微信酒局上硬撑…...

基于 eNSP 的校园网 NAT、DNS、HTTP 与访问控制综合实验

​​实验软件&#xff1a;eNSP | 实验内容&#xff1a;VLAN、单臂路由、静态 NAT、ACL、OSPF、DNS、HTTP、Telnet​&#x1f4cc; 前言这次实验的目标&#xff0c;是在 eNSP 中搭建一个包含学校网络、运营商网络、百度服务器网络的综合实验环境&#xff0c;并完成题目要求中的…...

如何处理SQL查询中的逻辑重叠:AND OR嵌套优先级.txt

<details> 中 <summary> 必须是第一个直接子元素&#xff0c;不可嵌套或包裹在其他标签内&#xff1b;支持默认展开&#xff08;open 布尔属性&#xff09;、JS 控制&#xff08;el.open false&#xff09;、toggle 事件监听&#xff1b;兼容性需注意 IE 不支持&a…...