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

day27 贪心算法

1.什么是贪心?
比如10张钞票,有1,5,20,100等面额,取五张,如何取得到数额最多的钱?每次取面额最大的那张钞票;就是每个阶段的局部最优;全局最优就是最后拿到的钞票数最大;局部最优推出全局最优;
题目描述
在这里插入图片描述

int cmp(const void *a,const void *b)
{return *(int *)(a) - *(int *)(b);
}int findContentChildren(int* g, int gSize, int* s, int sSize){// 找最大的饼干去喂胃口最大的孩子 这样不会浪费// 两个数组进行排序qsort(g,gSize,sizeof(int),cmp);qsort(s,sSize,sizeof(int),cmp);int right1 = gSize-1;int right2 = sSize-1;int count = 0;//记录投喂的孩子while(right1 >= 0 && right2 >= 0){if(s[right2] >= g[right1]){count++;right1--;right2--;}else{right1--;}}return count;
}

题目描述
在这里插入图片描述

int canCompleteCircuit(int* gas, int gasSize, int* cost, int costSize){// 下标 0  1  2  3  4// gas  1  2  3  4  5// cos  3  4  5  1  2// cur -2 -2 -2  4  3 (净增) 如果是负数,不可能走完一圈只能从下标3(不是负数)开始才能跑完一圈int cur = 0; //每一站剩余的油量int totalSum = 0;//所有剩余油量之和 < 0 不可能跑完一圈int start = 0;// 记录cur不是负数的下标for(int i = 0;i< gasSize;i++){cur += (gas[i] - cost[i]);totalSum += (gas[i] - cost[i]);if(cur < 0){start = i+1;cur = 0;//新起点,剩余油量归0.重新统计}}if (totalSum < 0){return -1;}return start;
}
http://www.lryc.cn/news/94939.html

相关文章:

  • Java实现字符串反转
  • vue - 常见的性能优化
  • 微服务系列文章 之 Nginx服务状态监控的方法
  • 【网络系统集成】路由器实验
  • 【mac 安装Miniconda】
  • 螺栓疲劳计算-风电行业,参考GL2010, ST0361,1993-1-9
  • QT学习之旅 - QThread多线程
  • PROFINET转TCP/IP网关TCP/IP协议的含义是
  • 计算机网络基础第六章
  • MobPush:Android客户端SDK厂商通道回执配置指南
  • Karmada: Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration
  • arcgis拓扑检查
  • icp许可证 办理流程(icp资质申请条件)
  • 三菱PLC 控制灯一秒钟交替闪烁
  • 金融数据库的战场,太平洋保险和OceanBase打了场胜仗
  • IP协议【图解TCP/IP(笔记九)】
  • C#仿热血江湖
  • Nginx静态资源部署
  • javaee jstl表达式
  • ChatGPT是否具有记忆能力?
  • ARP协议(地址分析协议)
  • c# websocket client java websocket server
  • 【玩转循环】探索Python中的无限可能性
  • 网安学习经历小记
  • MyBatis之慎用association
  • 【Java/大数据】Kafka简介
  • 【动手学深度学习】读写文件
  • http-server 的安装与使用
  • SQL高级教程
  • 9.pixi.js编写的塔防游戏(类似保卫萝卜)-群炮弹发射逻辑