贪心 135. 分发糖果

135. 分发糖果

难度困难1086

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。

示例 1:

输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。

示例 2:

输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。

提示:

  • n == ratings.length
  • 1 <= n <= 2 * 104
  • 0 <= ratings[i] <= 2 * 104

思路

先理解一下题意,他说是要根据孩子评分给每一个孩子分糖果.每一个孩子至少分配一个糖果,还有一重要的点是,相邻两个孩子评分更高的孩子会获得更多的糖果

意思就是对于一个孩子来说,除了两边,既与左面孩子相邻,也与右边孩子相邻.

所以我们就要一边一边进行考虑

  • 右孩子大于左孩子的情况(需要从前往后遍历)
  • 左孩子大于右孩子的情况(需要从后往前遍历)

但要保证对于每一个孩子来说,他既要比左面糖果多也要比右面糖果多,所以要取最大值.

 

思路总结

  • 从前往后遍历一遍数组,如果该孩子比它左边孩子评分高,就比左边孩子多一个糖果ratings[i]>ratings[i-1] ==> res[i] = res[i-1] +1; 右边孩子比左边孩子糖果多,达到局部最优,最终给所有孩子分完,全局最优
  • 从后往前遍历一边数组,如果该孩子比它右边孩子评分高,就比右边孩子多一个糖果ratings[i]>ratings[i+1] ==> res[i] = res[i+1] +1;左边孩子比右边孩子糖果多,达到局部最优,最终给所有孩子分完,全局最优
  • 对于一个孩子,既要比左面孩子评分高,也比右边孩子评分高,所以要取最大
  • 最后将结果数组res累加即可

第二步和第三步在代码层次可以合起来,因为只有一个孩子,既要比左面孩子评分高,也比右边孩子评分高,才会既要比左边孩子分的糖果多也要比右边孩子分的糖果多,==>res[i] = Math.max(res[i],res[i+1]+1) ; res[i]为已经计算好的了,一个孩子比它左面分高 res[i+1]+1,一个孩子比它右面孩子分高,取最大即可.

class Solution {public int candy(int[] ratings) {int[] res = new int[ratings.length];Arrays.fill(res,1);//每个孩子至少分配到 1 个糖果。for(int i =1;i<ratings.length;++i) {if(ratings[i]>ratings[i-1]) {//一个孩子比它左面孩子评分高,就多分一个糖果res[i] = res[i-1] + 1;}}int sum = 0;for(int i =ratings.length-2;i>=0;--i) {if(ratings[i]>ratings[i+1]) {//一个孩子比它右面孩子评分高,就多分一个糖果//对于一个孩子既要比左边孩子评分高也比右边孩子评分高,所以糖果要比两个都多,所以要取最大==>糖果既要比左面多也比右边多res[i] = Math.max(res[i],res[i+1]+1);}}int ans = 0;for(int i=0;i<ratings.length;++i) ans += res[i];return ans;}
}

总结 :

该题需要两个维度进行考虑,先考虑一边,再去考虑另外一边,不能同时考虑,要不都顾不过来.

出现两种维度的情况下,需要先确定好一个维度,在确定另外一个维度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15524.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音快手微信QQ壁纸小程序表情包小程序流量主广告源码搭建详细教程

​ 切记&#xff01;不要自作聪明&#xff01; 请仔细通读本文档再安装&#xff0c;不然报错会让你抓狂&#xff01;即使你对PHP非常熟悉&#xff0c;对uniapp非常熟悉&#xff0c;也必须通读文档&#xff0c;严格遵守文档的所写的&#xff0c;不然100%有报错&#xff0c;绝无…

【精选】表情包斗图小程序(可引流,开通流量主,权益外卖cps,带pc后台管理)

牛云表情包斗图小程序&#xff0c;流量主变现&#xff0c;外卖cps权益变现&#xff0c;uniCloud云开发无需购买服务器和域名&#xff0c;助力每一位内容创业者。 技术优势 基于 uniapp uniCloud 研发&#xff0c;无需购买服务器和域名&#xff0c;uniCloud 是 DCloud 联合阿…

小狐狸ChatGPT付费创作系统1.57独立开源版 + 小程序VUE前端+APP端 最全安装配置教程

小狐狸GPT付费体验系统最新版系统是一款基于ThinkPHP框架开发的AI问答小程序&#xff0c;是基于国外很火的ChatGPT进行开发的Ai智能问答小程序。播播资源技术小编经过系统测试系统完全开源&#xff0c;即可拥有自己的GPT&#xff01;整体测试下来非常完美&#xff0c;可以说小狐…

微信点餐小程序项目 --- 干饭人联盟(开源、免费)

参考项目。做了一点改动和完善。 项目源码。还有具体配置方法、sql脚本文件、API接口开发文档、数据库详细说明。 ①技术栈&#xff1a; 前端&#xff1a; 微信小程序原生框架 weui 后端&#xff1a;node.jsexpress 数据库&#xff1a;mysql ②效果&#xff1a; ③说明 1…

ChatGPT被淘汰了?Auto-GPT到底有多强

大家好&#xff0c;我是可夫小子&#xff0c;关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。 说Auto-GPT淘汰了ChatGPT了&#xff0c;显然是营销文案里面的标题党。毕竟它还是基于ChatGPT的API&#xff0c;某种意义只是基于ChatGPT能力的应用。但最近&#xff0c;Auto…

ChatGPT基础组件Transformer的代码实现(纯净版Transformer实现)

最近ChatGPT大火&#xff0c;其实去年11月份就备受关注了&#xff0c;最近火出圈了&#xff0c;还是这家伙太恐怖了&#xff0c;未来重复性的工作很危险。回归主题&#xff0c;ChatGPT就是由无数个&#xff08;具体也不知道多少个&#xff0c;哈哈哈哈&#xff09;Transformer语…

比特币将成为人工智能的首选货币

在这篇文章中&#xff0c;Arthur Hayes将阐述为什么中本聪的创造将成为人工智能的首选货币。我将把我的论点作为一系列逻辑结论来提出&#xff0c;这些结论相互基础&#xff0c;以「证明」人工智能将选择比特币作为其经济行为的计价货币。 原文作者&#xff1a;Arthur Hayes 原…

马斯克 xAI 誓师大会,2029实现AGI!12 人创始天团揭秘 xAI 终极目标

今天马斯克和 xAI12 人创始团队开了一个誓师大会&#xff0c;详述了公司的远景目标和运营方向&#xff0c;希望在 2029 年实现 AGI。 今天马院士「开源」了 xAI 的第一次重要会议&#xff01; 擅长在公司使命上「画大饼」的马院士&#xff0c;在这次会议上和创始团队讨论了很多…

为什么越来越多的网工运维_测试转行网络安全?

最近越来越多的网工运维小伙伴都在吐槽&#xff1a;干网工、运维多年&#xff0c;薪资还是5.6K&#xff0c;技术也遇瓶颈上不去&#xff0c;考虑转岗或者转行。其中大部分的网工运维小伙伴们纷纷瞄准了高薪高前景的网络安全工程师岗位 网络安全是怎样的岗位&#xff1f; 人才…

博泰应宜伦:把Vision Pro放大二十倍,就是未来汽车的终极形态

作者 | Amy 编辑 | 德新 新能源是上半场&#xff0c;智能化是下半场。 而随着智能汽车发展&#xff0c;智能座舱也不断革新&#xff0c;过去智能座舱的各项功能全面开花&#xff0c;竞争愈演愈烈&#xff0c;未来的座舱将如何被定义&#xff1f; 6月15日&#xff0c;博泰车联…

python爬虫入门

基础回顾 使用函数, 先导入, 直接点方法名使用 import math m math.log10(100) print(m)python 交互模式 input输入示例 age int(input("请输入年龄")) age 1 print(age)if else 的使用 和java一样, 只是不加括号, else if 阉割成了 elif 与或非 java : &am…

AI落地:儿童节贺卡

昨天有个朋友Lisa找到我&#xff0c;她是幼儿园的老师&#xff0c;看到我最近搞了个爱落地星球&#xff0c;在研究各行各业AI落地的事情&#xff0c;问我能不能用AI帮她写一百多张贺卡。 说起来写贺卡&#xff0c;我只会写“节日快乐”。现在有了ChatGPT&#xff0c;那就大不一…

Web3 的大规模普及和飞轮效应

点击上方“小强的进阶之路”&#xff0c;选择“星标”公众号 优质文章&#xff0c;及时送达 预计阅读时间: 5分钟 “iPhone 时刻”是指具有颠覆性意义的技术或产品在推出后所引发的一系列重大变革。像苹果公司的iPhone一样&#xff0c;Web3也可能在某个时刻产生显著的变革和重大…

AIGC第一波裁员已至

转自&#xff1a;51CTO技术栈 作者 | 徐杰承 审校 | 云昭 让所有人都没想到的是&#xff0c;正值人工智能之火烧遍全球之时&#xff0c;一家估值15亿美元&#xff0c;曾一度被多家媒体评价为2022年成长最快的AI独角兽的企业却突然公开宣布裁员。 7月12日早上&#xff0c;美国AI…

OAuth 2.0(四):手把手带你写代码接入 OAuth 2.0 授权服务

今天我们开始落地写代码&#xff0c;基于橘长之前接入过农业银行的授权&#xff0c;今天首先作为第三方服务来和大家分享「 手把手接入 OAuth 2.0 授权服务 」。 一、业务背景 近期团队帮银行做了一个互动营销活动&#xff0c;活动入口在行方的 App 上&#xff0c;当用户在行…

当推荐和搜索遇上大模型,会碰撞出什么样的火花

推荐和搜索是近年来信息分发的重要方式&#xff0c;小红书UGC社区让人印象深刻&#xff0c;其推荐系统有何特别之处&#xff1f;学界对搜推系统召回阶段有哪些主要进展和主流方法&#xff1f;面对大语言模型的兴起&#xff0c;推荐和搜索的发展有哪些机遇和挑战&#xff1f; 为…

今天,ChatGPT「代码解释器」正式解禁!30秒图片变视频,动嘴做表 | 十大惊人魔法全集...

【导读】坐等3个多月&#xff0c;ChatGPT「代码解释器」终于全面开放了&#xff0c;一大波魔法来袭。 家人们&#xff0c;终于来了&#xff01; 刚刚&#xff0c;ChatGPT「代码解释器」测试版正式向所有Plus用户开放。 Karpathy 在他的博客文章中介绍了 OpenAI 的代码解释器测试…

贾跃亭“杀回”FF核心管理层;近四成程序员只爱远程工作;小米回应被华为起诉专利侵权 | EA周报...

EA周报 2023年3月3日 每个星期1分钟&#xff0c;元宝带你喝一杯IT人的浓缩咖啡&#xff0c;了解天下事、掌握IT核心技术。 周报看点 1、复旦 Moss 团队&#xff1a;Moss 参数规模约是 ChatGPT 的 1/10 2、贾跃亭“杀回”FF核心管理层&#xff0c;重掌大权且权力范围扩大 3、科大…

2023CSDI算力+智能:数字时代的进化升级

引言 &#xff1a;在未来的产业布局中&#xff0c;云网融合、软硬一体化&#xff0c;硬件智能化、软件的泛化以及数据无处不在&#xff0c;基本是未来的趋势。新一轮的信息科技基本都长在云上&#xff0c;未来大部分的科技也都在信息技术之上&#xff0c;这也是互联网平台最大的…

用AI把自己画进动漫里,3天揽获150万+播放量,职业动画师:有被吓到

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 只需随手录制一段视频&#xff0c;AI就能把你完美放进动漫中&#xff01; 无论是线条、色彩还是光影呈现&#xff0c;都与美漫中的写实风格如出一辙&#xff0c;动画也是细腻流畅&#xff0c;帧数显然不低&#xff1a; 制作这样一部包含…