青铜挑战——贪心

455. 分发饼干 - 力扣(LeetCode)

这道题的意思是有两个数组 g 和 s,其中 g 表示每个孩子的胃口值(贪心值),s 表示每个饼干的大小。目标是想要满足尽可能多的孩子,问最多可以满足多少个孩子。
这个代码的思路是:
1. 首先对 g 和 s 数组分别排序。
2. 设置 index 指向 s 数组的最后一个元素,也就是最大的饼干。
3. 从 g 数组末尾开始遍历每个孩子,如果当前孩子的胃口小于等于 index 指向的饼干大小,则可以满足该孩子,result++,同时 index--。
4. 如果碰到胃口更大的孩子,index 不变,继续遍历下一个孩子。
5. 最后 result 即为可以满足的最多孩子数量。
所以这里设置 index = s.size() - 1 的目的是让 index 一开始就指向 s 数组中的最大饼干。
这种倒序遍历的做法可以让一个饼干尽可能满足更多的孩子,同时也利用了排序让贪心思路更清晰。
所以 index 作为 s 数组下标,指向最大饼干,是这种贪心策略的核心所在。

为什么for一定要是胃口?

455. 分发饼干 - 力扣(LeetCode)

135. 分发糖果 - 力扣(LeetCode)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值