力扣-135.分发糖果

135.分发糖果

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 * 10^4
0 <= ratings[i] <= 2 * 10^4

方法1:

第一次正向遍历,保证每个孩子右侧的具有更高分数的孩子获得更多的糖果。
第二次反向遍历,保证每个孩子左侧的具有更高分数的孩子获得更多的糖果。
需要遍历两次,并存储每个孩子的糖果数。

class Solution(object):def candy(self, ratings):n = len(ratings)can = [1]*nfor i in range(1, n):if ratings[i] > ratings[i - 1]:can[i] = can[i - 1] + 1for i in range(n - 2, -1, -1):if ratings[i] > ratings[i + 1]:can[i] = max(can[i], can[i + 1] + 1)return int(sum(can))
方法2:

只需要遍历一次,且不存储每个孩子的糖果数。执行效率更高。

class Solution(object):def candy(self, ratings):i = 0ret = pre = vi = vi_1 = 1for j in range(1, len(ratings)):if ratings[j] >= ratings[j - 1]:if ratings[j] > ratings[j - 1]:pre = pre + 1ret += preelse:pre = 1ret += 1i = jvi = previ_1 = 1else:if pre == 1:if i + 1 != j:vi_1 += 1if vi == vi_1:vi += 1ret += j - ielse:ret += j - i - 1pre = 1ret += 1return ret

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

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

相关文章

BUUCTF crypto做题记录(5)新手向

一、传统知识古典密码 加上一个数&#xff0c;就有点移位加密的味道&#xff0c;很有可能就是凯撒加密 辛卯28&#xff0c;癸巳30&#xff0c;丙戌23&#xff0c;辛未8&#xff0c;庚辰17&#xff0c;癸酉10&#xff0c;己卯16&#xff0c;癸巳30 加1之后&#xff0c;28变29&a…

详解编码与调制

编码与调制是现代通信领域的重要概念。在信息传输过程中&#xff0c;编码和调制起着至关重要的作用&#xff0c;它们帮助将数字信号转化为模拟信号&#xff0c;从而实现高效、可靠的数据传输。本文将从编码和调制的基本概念、常见的编码和调制技术以及其在通信领域的应用等方面…

微商城怎么弄才能开通呢?

​微商城的开通&#xff0c;对于许多商家来说&#xff0c;是进入移动电商领域的重要一步。它不仅能帮助你扩大销售渠道&#xff0c;还能让你更好地管理和服务你的客户。那么&#xff0c;微商城怎么弄才能开通呢&#xff1f; 1、注册微信公众号&#xff1a;首先&#xff0c;你需…

麒麟KYLINOS操作系统上扩容系统盘

原文链接&#xff1a;麒麟KYLINOS操作系统上扩容系统盘 hello&#xff0c;大家好啊&#xff01;继之前我们讨论了如何在统信UOS上扩容数据盘之后&#xff0c;今天我要给大家带来的是在麒麟KYLINOS操作系统上扩容系统盘与数据盘的方法。随着数据的不断增长&#xff0c;系统盘或数…

【开题报告】基于SSM的动物保护知识科普平台的设计与实现

1.研究背景 动物保护是一个全球性的议题&#xff0c;涉及到生态环境、物种多样性和可持续发展等重要领域。随着人们环保意识的提高和社会对动物福利的关注度的增加&#xff0c;动物保护知识科普的重要性日益凸显。 在过去的几十年里&#xff0c;动物保护组织和机构开展了大量…

微软 Power Platform 使用Power Automate发送邮件以Dataverse作为数据源的附件File Column

微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式 目录 微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式1、需求背景介绍2、附件列File Column介绍3、如何在Po…

亚马逊多店铺运营:如何有效降低账号关联风险?

在亚马逊平台进行多店铺运营时&#xff0c;账号关联风险是卖家需要特别关注的问题。本文将介绍一些有效的方法&#xff0c;以帮助卖家降低账号关联风险&#xff0c;保护多店铺运营的稳定和持续性。 一、避免使用相同的IP地址和设备 亚马逊通过IP地址和设备指纹等信息来判断账…

分布式之任务调度Elastic-Job学习二

4 Spring 集成与分片详解 ejob-springboot 工程 4.1 pom 依赖 <properties><elastic-job.version>2.1.5</elastic-job.version> </properties> <dependency><groupId>com.dangdang</groupId><artifactId>elastic-job-lite-…

安全cdn有哪些优势

1. 免备案&#xff1a;在中国大陆地区&#xff0c;进行网站建设需要先进行备案手续&#xff0c;而安全cdn可以避免这一繁琐的步骤&#xff0c;节省时间和精力。 2. 精品线路&#xff1a;安全cdn使用的是覆盖范围更广、速度更快的香港CN2 GIA优化线路。 3. 高速稳定&#xff1a…

邦芒攻略:让HR看得上的简历五大要素

简历是求职的敲门砖。只有通过简历筛选&#xff0c;HR给你面试通知&#xff0c;你才有机会面试&#xff0c;距离你的心仪的公司和职位又近了一步。 1、简历上的求职目标一定要简洁明确。简历上的内容一定要能与所应聘的岗位所呼应&#xff0c;无 关紧要的信息最好不要出现&…

Xpath的问题:为什么在DOM中确定存在(可见)的元素,用//表达式匹配不到(附解决办法)

今天遇到一个很有意思的问题&#xff0c;我的爬取的目标页面上有时会出现一个弹窗&#xff0c;它挡住我点击其它按钮了&#xff0c;我想找到它的关闭按钮&#xff0c;自动点击一下关闭掉&#xff0c;本来是很简单的事情&#xff0c;但偏偏出问题了&#xff0c;DOM中看到的html是…

在vue3中使用Cesium保姆篇

1.首先新建一个vue项目 Vue.js - 渐进式 JavaScript 框架 | Vue.js 可以直接到管网中查看命令通过npm来创建一个vue3的项目 然后通过命令下载1.99的版本的cesium和plugin npm i cesium1.99 vite-plugin-cesium 下载完了以后 2.引入cesium 首先找到vue的vite.config.js …

[LitCTF 2023]这是什么?SQL !注一下 !

[LitCTF 2023]这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; wp 题目描述&#xff1a;为了安全起见多带了几个套罢了o(▽)q 页面内容&#xff08;往下滑&#xff09;&#xff1a; SQL 语句已给出&#xff0c;无非是更换了闭合方式。 先输个 1 试试&#xff1a; …

【unity】基于Obi的绳/杆蓝图、绳杆区别及其创建方法

绳索 是通过使用距离和弯曲约束将粒子连接起来而形成的。由于规则粒子没有方向(只有位置)&#xff0c;因此无法模拟扭转效应(维基百科)&#xff0c;绳子也无法保持其静止形状。然而&#xff0c;与杆不同的是&#xff0c;绳索可以被撕裂/劈开&#xff0c;并且可以在运行时改变其…

轻量对象存储 LighthouseCOS 用户实践征文

产品使用攻略、上云技术实践&#xff0c;有奖征集&#xff0c;多重好礼等您带回家&#xff5e; 存储桶一键挂载轻量应用服务器&#xff0c;简单易用&#xff0c;腾讯云轻量对象存储用户实践征文活动特惠&#xff1a;腾讯云轻量云专场特惠活动。 投稿说明 1. 注册/登录腾讯云账…

【EI会议征稿通知】第三届智能电网与绿色能源国际学术会议(ICSGGE 2024)

第三届智能电网与绿色能源国际学术会议&#xff08;ICSGGE 2024&#xff09; 2024 3rd International Conference on Smart Grid and Green Energy 2024年第三届智能电网与绿色能源国际学术会议&#xff08;ICSGGE 2024&#xff09;将于2024年4月19-21日在中国成都举行。会议…

探索架构之美 | 小米分享架构师的方法论

大家好&#xff0c;我是小米&#xff01;今天我们要聊的话题可是相当精彩——“架构师的方法论”&#xff01;作为一名热爱技术的小伙伴&#xff0c;我深知在软件开发领域&#xff0c;拥有一套科学的方法论是多么的重要。所以&#xff0c;不废话&#xff0c;让我们一起踏上探索…

SpringBoot集成 Websocket 实现服务与客户端进行消息发送和接收

介绍 WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 效果 客户端效果 服务端日志 pom依赖 <!-- websocket --> <dependency><groupId>org.springfram…

vue3+Ts+Hook的方式实现商城核心功能sku选择器

前言 Hooks是React等函数式编程框架中非常受欢迎的工具&#xff0c;随着VUE3 Composition API 函数式编程风格的推出&#xff0c;现在也受到越来越多VUE3开发者的青睐&#xff0c;它让开发者的代码具有更高的复用度且更加清晰、易于维护。 本文将通过CRMEB商城商品详情sku选择…

iOS苹果和Android安卓测试APP应用程序的差异

Hello大家好呀&#xff0c;我是咕噜铁蛋&#xff01;我们经常需要关注移动应用程序的测试和优化&#xff0c;以提供更好的用户体验。在移动应用开发领域&#xff0c;iOS和Android是两个主要的操作系统平台。本文铁蛋讲给各位小伙伴们详细介绍在App测试中iOS和Android的差异&…