96SEO 2026-02-20 02:28 14
二.例题1.柠檬水找零2.将数组和减半的最小操作次数3.最大数4.摆动序列

Algorithm)是一种在每一步选择中都采取在当前状态下的最优决策的算法策略。
他并不从整体最优上加以考虑而是做出在当前看来是最好的选择。
贪心策略的提出是没有标准和模板的可能每一道题的贪心策略都是不同的因此在学习贪心算法的时候重点要掌握每一道题的策略把这道题的策略当成经验。
前面提到一个词“希望”得到最优解因为有可能“贪心策略是一个错误的方法正确的贪心策略是需要严格的数学证明。
根据题意可以明白顾客付钱有三种情况如果是5美元那就直接收下如果是10美元并且当前手里5美元的数量大于等于1收下然后找零5美元如果没有5美元则返回false如果是20美元有两种找零方式第一种105第二种555这里就用到了贪心的思想优先使用第一种方式找零。
如果第一次20美元使用第二种找零方式恰好手里有三张5美元一张10美元如果第一次就使用三张5美元等之后再次遇到10美元就只剩一张10美元不能找零。
这里用到的是交换论证法如果20美元使用第二种找零方式手里的10美元一直到最后也没有使用因此10美元可以替换20美元找零时的两张5美元如果第一次20美元使用第二种找零方式555第二次使用第一种方式找零105第二次的10可以和第一次的两张5交换交换后无影响。
bills){//设置两个变量一个用来表示5元的个数一用来表示10元的个数int
bills){//如果给的是5元直接收下if(x5){five;}//如果给的是10元先判度是否有5元找零有就找零收下没有就返回if(x10){if(five0){return
false;}else{five--;ten;}}//如果给的是20元有三种情况if(x20){//贪心思想优先考虑105找零if(tenfive){five--;ten--;}//第一种不能找零再考虑第二种找零方式555else
因此本道题的贪心策略使用最少的操作次数完成数组和的减半因此每次选择一个数减半时都选择最大的那个数减半这里就是贪心的思想每次都选择最大的数减半。
既然要快速获取数组中的最大数就可以借助大根堆这个数据结构每次都选择堆顶的元素减半减半后从新放回堆中调整然后循环进行知道数组和减到一半返回最小操作数。
nums){//建立一个大根堆priority_queuedouble
x;}//先获取数组和的一半每次减去堆顶元素的一半直到减为小于等于0sum
count0;while(sum0){//获取堆顶元素的一半,并删去double
根据题意要求可以自定义排序规则因为要返回的是组合后最大的数所以按照自定义的排序规则从大到小的排序比如现在有两个数a和b有两种组合方式ab和ba如果组合后abba则a在前b在后如果abba则ab如果abba则b在前a在后比如示例一a10b2组合后ab102ba210所以b(2)在前a(10)在后根据自定义排序规则将整个数组中的元素都排序后然后从前往后组合就是要找的最大数。
这里有一个细节点如何快速的将两个数组合比较可以先将每一个数都转化成字符串的形式组合时直接的将两个字符串相加拼接即可这样就能快速的组合最后排完序后还可以直接从前往后将所有字符串拼接就是要返回的结果。
至于为什么上面的这个自定义排序规则是正确的可以看下面的证明过程
nums){//先将每个数字转换成字符串存放到字典数组中vectorstring
nums){dictionary.push_back(to_string(x));}//使用Lambda表达式自定义排序规则sort(dictionary.begin(),
i){//如果是最后一个位置直接1if(inums.size()-1){ret;break;}//先计算当前位置右侧的峰值int
nums[i];//如果右侧峰值等于0跳过if(right0){continue;}//如果左右两侧峰值相乘小于0表示当前位置是波峰或者波谷if(left*right0){ret;}//将当前位置的右侧峰值赋值给左侧表示下一个位置的左侧峰值left
}以上就是关于贪心算法以及一些练习题的讲解如果哪里有错的话可以在评论区指正也欢迎大家一起讨论学习如果对你的学习有帮助的话点点赞关注支持一下吧
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback