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

贪心算法实例-问题分析(C++)

贪心算法实例-问题分析

饼干分配问题

有一群孩子和一堆饼干,每个小孩都有一个饥饿度,每个饼干都有一个能量值,当饼干的能量值大于等于小孩的饥饿度时,小孩可以吃饱,求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃一整块饼干)如饼干能量值[6,3,1,2],小孩饥饿度[1,5,3],此时最多能有三个小孩可以吃饱。
贪心策略:让最容易吃饱的小孩先选择,从所有饼干中选择,能量值最小的饼干。

贪心思路

先对饼干和孩子的饥饿度进行排序。

然后从最小的饥饿度的孩子开始,尝试用能量值最小的饼干去满足。如果该饼干能满足当前孩子的需求,则分配给他;否则,尝试下一个饼干。

这样,优先满足最容易吃饱的孩子,保证尽可能多的孩子得到饼干。

代码实现

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;// 分配饼干函数
int findContentChildren(vector<int>& children, vector<int>& cookies) {// 对饥饿度和饼干进行排序sort(children.begin(), children.end());sort(cookies.begin(), cookies.end());int childIndex = 0; // 孩子索引int cookieIndex = 0; // 饼干索引// 贪心算法进行匹配while (childIndex < children.size() && cookieIndex < cookies.size()) {// 如果当前饼干能满足当前孩子if (cookies[cookieIndex] >= children[childIndex]) {childIndex++;  // 孩子得到了饼干}cookieIndex++;  // 无论如何都要尝试下一个饼干}return childIndex;  // 返回得到饼干的孩子数量
}int main() {// 输入数据vector<int> children = {1, 5, 3};  // 孩子的饥饿度vector<int> cookies = {6, 3, 1, 2};  // 饼干的能量值// 调用函数,输出结果int result = findContentChildren(children, cookies);cout << "最多有 " << result << " 个孩子可以吃饱。" << endl;return 0;
}

运行结果

0fe0002efbfaff578e8bfaa4e136129

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

相关文章:

  • Ubuntu20.04 配置虚拟显示器和切回物理显示器
  • HTML 常用标签属性汇总一〈body〉标签
  • Python yield关键字
  • tomcat的Mysql链接字符串问题
  • 聊聊JVM G1(Garbage First)垃圾收集器
  • 【论文复现】隐式神经网络实现低光照图像增强
  • Python知识分享第十九天-网络编程
  • C# 绘制GDI红绿灯控件
  • Centos 8 服务器时间校正
  • 模型 正则化方法(通俗解读)
  • ffmpeg命令
  • 使用 EasyExcel 实现高效的 Excel 读写操作
  • 数据结构(栈Stack)
  • Windows 11 环境下 条码阅读器输入到记事本的内容不完整
  • 【串口助手开发】visual studio 使用C#开发串口助手,生成在其他电脑上可执行文件,可运行的程序
  • Redis设计与实现读书笔记
  • UE5 Do Once 节点
  • javascript(前端)作为客户端端通过grpc与cpp(服务端)交互
  • 前端常用缓存技术深度剖析
  • Asp.net Mvc在VSCore中如何将增删改查的增改添加数据传输到页面(需配合上一篇Mvc的增删改查一起)
  • Android显示系统(04)- OpenGL ES - Shader绘制三角形
  • 微信 创建小程序码-有数量限制
  • 重生之我在异世界学编程之C语言:操作符篇
  • 365天深度学习训练营-第P7周:马铃薯病害识别(VGG-16复现)
  • 解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
  • Kubernetes 告警标签规范与最佳实践
  • 前端开发 之 15个页面加载特效中【附完整源码】
  • rsync+nfs+lrsync服务部署流程
  • 基于SpringBoot+Vue的宠物咖啡馆系统-无偿分享 (附源码+LW+调试)
  • SQLServer 服务器只接受 TLS1.0,但是客户端给的是 TLS1.2