
贪心算法
对每个孩子的胃口值进行排序,从小到大排列。 对饼干尺寸也进行排序,从小到大排列。 使用贪心算法:每次分发最小的饼干给胃口最小的孩子。 排序胃口值和饼干尺寸。 遍历饼干数组,每次尝试用当前饼干满足当前胃口最小的孩子。 记录满足的孩子数量,直到没有更多的孩子可以得到饼干为止。
使用贪心算法,每次跳跃选择能覆盖最远的下一个位置。 维护当前位置和当前最大可达位置。 当前位置无法跳跃到终点时,更新下一个跳跃的目标位置。
使用双指针遍历字符串。 当前字符与下一个字符相同时,删除前一个字符。 保持前指针总是指向更早的位置,避免重复删除同一个字符。
发布日期:2021-05-07 11:08:51
浏览次数:22
分类:精选文章
本文共 1789 字,大约阅读时间需要 5 分钟。
贪心算法
贪心算法的名字直接点明了它的特点:在解决问题的过程中,始终选择当前最有利的选项,以期望实现全局最优解。这种算法在很多场景中都能发挥出色表现,尤其是在需要快速决策且对全局影响不敏感的领域。
分发饼干
假设你是一位家长,想要给孩子们分发饼干。每个孩子都有一个胃口值,这个值代表他们满足胃口所需的最小饼干尺寸。饼干的尺寸各不相同,给每个孩子分发饼干的目标是让尽可能多的孩子得到满足。
问题分析
解决方案
通过对饼干尺寸和孩子胃口值进行排序,采用贪心算法依次尝试分发饼干。具体步骤如下:
跳跃游戏
给定一个非负整数数组,表示每个位置可以跳跃的最大步数。目标是用最少的跳跃次数到达数组的最后一个位置。
解决思路
解决代码
int jump(int* nums, int numsSize) { if (numsSize == 1) return 0; int count = 0; int max = 0; int sub = 0; int i = 0; while (i < numsSize) { if (nums[i] + i >= numsSize - 1) { count++; return count; } sub = 0; max = 0; for (int j = 1; j <= nums[i]; j++) { if (nums[i + j] + j > max) { max = nums[i + j] + j; sub = j; } } count++; i += sub; } return count;}
避免重复字母的最小删除成本
给定一个字符串和一个整数数组,表示每个字符删除的成本。目标是通过删除最小数量的字符,使得字符串中任意相邻两个字符都不相同。
解决思路
解决代码
int minCost(char* s, int* cost, int costSize) { int count = 0; int prev_sub = 0; int next_sub = 1; while (next_sub < costSize) { if (s[prev_sub] == s[next_sub]) { if (cost[prev_sub] < cost[next_sub]) { count += cost[prev_sub]; // 删除前指针位置的字符 prev_sub++; } else { count += cost[next_sub]; next_sub++; } } else { next_sub++; } } return count;}
本文通过对四种算法问题的详细解读和代码实现,展示了贪心算法在不同场景中的应用。每个算法都采用了贪心思想,通过局部最优解的选择来实现全局最优解。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月04日 12时24分46秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
云计算之路-阿里云上:博客web服务器轮番CPU 100%
2019-03-06
云计算之路-阿里云上:服务器CPU 100%问题是memcached连接数限制引起的
2019-03-06
上周热点回顾(3.26-4.1)
2019-03-06
上周热点回顾(6.25-7.1)
2019-03-06
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2019-03-06
工作半年的思考
2019-03-06
不可思议的纯 CSS 滚动进度条效果
2019-03-06
【CSS进阶】伪元素的妙用--单标签之美
2019-03-06
惊闻NBC在奥运后放弃使用Silverlight
2019-03-06
IE下尚未实现错误的原因
2019-03-06
创建自己的Docker基础镜像
2019-03-06
Python 简明教程 --- 20,Python 类中的属性与方法
2019-03-06
KNN 算法-理论篇-如何给电影进行分类
2019-03-06
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2019-03-06
CODING 敏捷实战系列课第三讲:可视化业务分析
2019-03-06
使用 CODING DevOps 全自动部署 Hexo 到 K8S 集群
2019-03-06
工作动态尽在掌握 - 使用 CODING 度量团队效能
2019-03-06
CODING DevOps 深度解析系列第二课报名倒计时!
2019-03-06
数据结构第八节(图(下))
2019-03-06
基于Mustache实现sql拼接
2019-03-06