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

贪心算法学习(共12题) :1.柠檬水找零、2.将数组和减半的最少操作次数

1.柠檬水找零

一、题目解析

二、算法原理

有五块的话要,优先保留五块,优先选择10+5,没有的话在选择5+5+5.

三、代码

class Solution { public: bool lemonadeChange(vector<int>& bills) { int five = 0, ten = 0; for(auto x : bills) { if(x == 5) five++; else if(x == 10) { if(five == 0) return false; five--; ten++; } else { if(ten && five) // 贪心:优先用10元找零 { ten--; five--; } else if(five >= 3) { five -= 3; } else { return false; } } } return true; } };

四、证明

证明策略:交换论证法

当是5和10元时,贪心解和最优解没有差别

当是20时

2.将数组和减半的最少操作次数

一、题目解析

解法:贪心+大根堆

二、具体策略:

每次挑选当前数组中最大的那个数,然后减半,知道数组和减少到至少一半为止

三、代码

class Solution { public: int halveArray(vector<int>& nums) { priority_queue<double> heap; double sum = 0.0; for (int x : nums) { heap.push(x); sum += x; } sum /= 2.0; int count = 0; while (sum > 0) { double t = heap.top() / 2.0; heap.pop(); sum -= t; count++; heap.push(t); } return count; } };

四、证明

贪心解挑选的是最大的数,最优解可能不是,所以x>=y

1.如果x没用过,那么直接换,不影响(

y<x,y减半都能让数组变小,x更能让他变小,

哪怕后面用二分之y,四分之y,里面的y也可以替换为x不影响

2.如果x用过,先用x还是先用y交换位置并不影响

就算y与x之间存在二分之y,四分之y,里面的y也可以替换为x不影响

3.最大数

一.题目解析

二、

http://www.zskr.cn/news/1513658.html

相关文章:

  • S32K3 eMIOS的Counter Bus机制详解:如何像搭积木一样组合定时器功能?
  • 机器学习偏见识别六步法:从数据源头到线上部署的实战指南
  • 2026年中开泵厂家推荐排行榜:辽阳双吸中开泵/卧式中开泵/大流量中开泵/单级双吸中开泵/铸铁中开泵/水厂给排水中开泵实力源头公司精选 - 品牌发掘
  • OpenSSL终极部署指南:从源码编译到生产环境的完整实战
  • 开源免费的桌面自动化神器,AI 一句话生成工作流:AutoFlow Studio
  • YOLOv11夜间城市道路行人与车辆目标检测数据集-4132张-person-1_3
  • 别再死记硬背了!用Python代码帮你理解逻辑代数的三大核心定理
  • 基于QorIQ T1024RDB的嵌入式网络设备开发:从硬件解析到DPAA应用实践
  • 2026苏州APP开发公司排名:技术实力、源码交付与本地交付评分
  • Visual C++运行库一键修复:Windows软件兼容性问题的终极解决方案
  • 【小白也能轻松用】OpenClaw 一键部署全流程,零基础保姆级超详细教程(含最新安装包)
  • DistroAV终极指南:如何用网络视频传输技术彻底改变OBS直播工作流
  • PowerQUICC II MPC8280:集成通信处理器架构解析与开发实战
  • 基于Kalman滤波和现代时间序列分析方法,集中式融合估计、分布式融合估计、 协方差交叉融合等方法实现对状态的融合估计附Matlab代码
  • 2026年天津代理记账公司TOP榜单出炉,本土财税服务实力解析 - 互联百晓生
  • Chrome极简二维码插件:一站式解决网页与移动设备间的无缝连接
  • 终极简单!5分钟掌握QQ音乐加密格式转换秘籍
  • 如何轻松掌握游戏模型修改:GIMI工具5步快速入门指南
  • 自动驾驶入门:为什么线性二自由度模型是车辆控制的‘第一课’?
  • 三大无痛部署方案:在Intel GPU上轻松运行大语言模型
  • GA1102CAL 示波器:数字滤波完整操作步骤 + 硬件带宽限制对比全讲解(一)
  • 深度解析:如何通过逆向工程突破百度网盘下载速度限制
  • 2026年天津工商注册公司服务评测,真实评价汇总 - 互联百晓生
  • MCF5282嵌入式MCU深度解析:从ColdFire内核到以太网与CAN总线实战
  • Snap Hutao:用智能数据重塑你的原神游戏体验
  • Notepad--:国产跨平台轻量级文本编辑器完整使用指南
  • OpenDeRisk可视化证据链:3大核心功能让故障诊断一目了然
  • 程序员生存指南05-0-3年、3-5年、5年+:不同阶段程序员的转型策略,从CRUD到架构师:程序员能力跃迁的实战路线图
  • 三步搞定网页视频下载:VideoDownloadHelper终极指南
  • 英雄联盟智能助手:League Akari 完全使用指南 [特殊字符]