力扣 135. 分发糖果

news/2024/11/29 4:33:12/

题目来源:https://leetcode.cn/problems/candy/description/

 

C++题解(来源代码随想录): 先从左往右比较,右边孩子评分比左边高就多发1颗糖,否则就只发1颗;再从右往左比较,左边孩子评分比右边高就多发1颗糖,否则就只发1颗。如此一来,从左到右和从右到左,同个人可能会得到两个不同数目的糖,为了两边都满足,选择大的那个数。

class Solution {
public:int candy(vector<int>& ratings) {int len = ratings.size();if(len == 1) return 1;vector<int> nums(len, 1);for(int i = 1; i < len; i++) {if(ratings[i] > ratings[i - 1]) nums[i] = nums[i - 1] + 1;}for(int j = len - 2; j >= 0; j--) {if(ratings[j] > ratings[j + 1]) nums[j] = max(nums[j], nums[j + 1] + 1);}int res = 0;for(int k = 0; k < len; k++) {res += nums[k];}return res;}
};

这个题如果同时考虑两边,对于连续相同评分的孩子分情况讨论很复杂。


http://www.ppmy.cn/news/957390.html

相关文章

C# delegate,Action,Func,Event 使用

文章目录 1. delegate 委托2. Event 事件3. Action 无返回值委托4. Func 带返回值委托 1. delegate 委托 作用&#xff1a; &#xff08;1&#xff09;将方法当作参数传递 &#xff08;2&#xff09;方法的一种多态&#xff08;类似于一个方法模板&#xff0c;可以匹配很多个方…

python 笔记:you-get

下载视频/音乐/图片 使用pip安装you-get pip3 install you-get 之后在命令行执行下载操作 1 主要命令行参数 -n --no-merge 如果视频分p&#xff0c;不进行合并--no-caption不下载弹幕、歌词等 -f --force 覆盖已存在的文件 -F STREAM_ID --format STREAM_ID 指定视频下载…

【产品设计】通用后台管理系统需求及原型设计

后台管理系统&#xff0c;会根据不同公司、不同业务的要求做出改变。 网上很多系统的参考多数为业务中台&#xff0c;过于带有业务色彩。做过三四个后台管理系统&#xff0c;从中总结了一个通用的功能和需求设计模版&#xff0c;供大家参考。本文适用于0-2岁的产品经理做基础功…

JS-26 认识防抖和节流函数;自定义防抖、节流函数;自定义深拷贝、事件总线函数

目录 1_防抖和节流1.1_认识防抖和节流函数1.2_认识防抖debounce函数1.3_防抖函数的案例1.4_认识节流throttle函数 2_Underscore实现防抖和节流2.1_Underscore实现防抖和节流2.2_自定义防抖函数2.3_自定义节流函数 3_自定义深拷贝函数4_自定义事件总线 1_防抖和节流 1.1_认识防…

实现将redis中的所有数据备份到数据库表中

实现将redis中的所有数据备份到数据库表中 /*** 将redis中的数据同步到mysql中*/Overridepublic void saveMysqlForRedis(){Jedis jedis new Jedis("127.0.0.1", 6379);//System.out.println(jedis.ping());Set keys jedis.keys("*");//列出所有的keyI…

Win10环境下Android Studio中运行Flutter HelloWorld项目

一、引言 Android Studio是Android的官方IDE(Integrated Development Environment)。它专为Android而打造&#xff0c;可以加快开发速度&#xff0c;为Android设备构建最高品质的应用。 Flutter是Google推出并开源的移动应用开发框架&#xff0c;主打跨平台、高保真、高性能。开…

一分钟带你了解什么是ChatGPT?

在实际应用场景中&#xff0c;ChatGPT可以应用于多种场景&#xff0c;如客服、娱乐和教育等。与传统的聊天机器人相比&#xff0c;ChatGPT具有更高的智能水平&#xff0c;能够更好地理解人类的语言和意图。比如&#xff0c;ChatGPT可以帮助用户解决一些常见的问题&#xff0c;如…

chatGPT的原理是什么

ChatGPT是一种基于自然语言生成的对话系统。它使用了一种叫做 Transformer 的神经网络架构&#xff0c;能够从输入的文本中学习语言模型并生成输出文本。 ChatGPT 的工作原理是&#xff0c;当用户输入一条消息时&#xff0c;它会将输入的消息与之前的对话历史拼接起来&#xff…