当前位置: 首页 > 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的航拍图像旋转目标检测

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

Vitis 2020.1 里 MicroBlaze 程序编译失败?别急着找处理器,先看看你的 BRAM 够不够用

Vitis 2020.1中MicroBlaze程序编译失败的深度排查指南 当你满怀期待地点击Vitis中的"Run"按钮&#xff0c;却突然弹出一条"找不到microblaze_0"的警告时&#xff0c;千万别急着怀疑人生。这种看似处理器配置错误的表象下&#xff0c;往往隐藏着一个更本质的…...

RWKV7-1.5B-world惊艳效果:中英双语生成同一编程问题(如‘Python列表推导式‘)详解

RWKV7-1.5B-world惊艳效果&#xff1a;中英双语生成同一编程问题详解 1. 模型概览与技术特性 RWKV7-1.5B-world是基于第7代RWKV架构的轻量级双语对话模型&#xff0c;拥有15亿参数。与传统Transformer架构不同&#xff0c;它采用线性注意力机制&#xff0c;具有以下显著特点&…...

题解:洛谷 P3799 小 Y 拼木棒

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

Material Icon Library开源贡献指南:如何参与项目开发和维护

Material Icon Library开源贡献指南&#xff1a;如何参与项目开发和维护 【免费下载链接】material-icon-lib Library containing over 2000 material vector icons that can be easily used as Drawable or as a standalone View. 项目地址: https://gitcode.com/gh_mirrors…...

简单三步:Fun-ASR多语言语音识别模型部署与调用教程

简单三步&#xff1a;Fun-ASR多语言语音识别模型部署与调用教程 1. 快速了解Fun-ASR语音识别模型 Fun-ASR-MLT-Nano-2512是阿里通义实验室推出的轻量级多语言语音识别模型&#xff0c;它能帮你把各种语言的语音内容快速转换成文字。想象一下&#xff0c;你只需要对着手机说话…...

I2C长距离传输解决方案与PCA9605应用实践

1. I2C总线长距离传输的挑战与解决方案 在嵌入式系统设计中&#xff0c;I2C总线因其简单的两线制结构和多主从架构而广受欢迎。但当通信距离超过标准规定的几米范围时&#xff0c;信号完整性问题就会凸显。我曾在一个工业传感器网络项目中&#xff0c;需要将I2C信号传输到20米外…...

别再死记硬背了!用C#手写一个位运算模拟器,彻底搞懂与、或、非、异或

从零构建C#位运算模拟器&#xff1a;用二进制视角彻底理解与、或、非、异或 当你第一次在代码中看到x & y或~z这样的表达式时&#xff0c;是否曾好奇计算机究竟在底层做了什么&#xff1f;位运算作为编程语言中最接近硬件的操作之一&#xff0c;理解它的本质能让你写出更高…...

8大网盘直链下载助手终极指南:告别限速,实现全速下载

8大网盘直链下载助手终极指南&#xff1a;告别限速&#xff0c;实现全速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云…...

Adobe-GenP 3.0技术解析:AutoIt脚本驱动的Adobe软件许可验证修改方案

Adobe-GenP 3.0技术解析&#xff1a;AutoIt脚本驱动的Adobe软件许可验证修改方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一个基于AutoIt脚…...

别再只ping 127.0.0.1了!聊聊这个‘回环地址’在开发、测试和网络屏蔽中的5个实战用法

127.0.0.1的五大实战应用&#xff1a;从开发调试到网络优化 每次在终端输入ping 127.0.0.1看到"Reply from 127.0.0.1"的响应时&#xff0c;你是否想过这个特殊的IP地址还能做什么&#xff1f;对于开发者、测试工程师和网络爱好者来说&#xff0c;127.0.0.1远不止是一…...