135. 分发糖果(困难)-贪心
一、题目描述
n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。
你需要按照以下要求,给这些孩子分发糖果:
- 每个孩子至少分配到 1 个糖果。
- 相邻两个孩子评分更高的孩子会获得更多的糖果。
请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
示例 1:
输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。
示例 2:
输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。
二、解题
贪心
三次遍历,从左向右遍历一次,从右向左遍历,然后保存在数组中,最后一次遍历取最大值。
class Solution {public int candy(int[] ratings) {int length = ratings.length;int[] left = new int[length];int[] right = new int[length];Arrays.fill(left,1);Arrays.fill(right,1);for(int i = 1;i<length;i++){if(ratings[i] > ratings[i-1]){left[i] = left[i-1] + 1;}}for(int i = length - 2;i>=0;i--){if(ratings[i]>ratings[i+1]){right[i] = right[i+1] + 1;}}int res = 0;for(int i = 0;i<length;i++){res += Math.max(left[i],right[i]); }return res;}
}
时间复杂度:O(n);
空间复杂度:O(n)。
135. 分发糖果(困难)-贪心相关推荐
- 135. 分发糖果(贪心算法)
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 评分更高的孩子必须 ...
- 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)
看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...
- 贪心 135. 分发糖果
135. 分发糖果 难度困难1086 n 个孩子站成一排.给你一个整数数组 ratings 表示每个孩子的评分. 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻两个孩 ...
- 135. 分发糖果 【每日一题】
135. 分发糖果 思路 两次遍历,先从左到右计算出每个人的糖果数,这一步就是后一个比前一个大就在前一个基础上+1,不然置为1,从这个思路来来看,我们这一趟酒吧升序的给基本算好了,但是降序的我们现在全 ...
- 135. 分发糖果002(贪心算法+思路+详解)
一:题目 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 评分更高 ...
- LeetCode 135. 分发糖果(贪心算法)
题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的孩 ...
- LeetCode算法题0:分发糖果【贪心算法】
文章目录 前言 一.题目 二.思路详解 三.搞点实际点儿的(C++实现) 1.略显粗糙的代码实现 2.稍显精致的代码实现 3.最终的代码实现 4.提交结果 总结 前言 本文记录自己在LeetCode上 ...
- LeetCode 135 分发糖果
题目描述 老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先 给他们评分.你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果. 相邻的孩子 ...
- leetcode 135. 分发糖果
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果. 相邻的孩子中,评分 ...
最新文章
- thinkphp中data方法
- Impress.js教程
- CSS3详解:background
- 分析.cpp文件编译生成的汇编文件里语句的作用
- 两分数相乘后约分的Cantor表(洛谷P1482题题解,Java语言描述)
- cloud_config学习_1
- SQL Server 默认跟踪 -- 捕获事件详解
- 每个叶子节点(nil)是黑色。_填充每个节点的下一个右侧节点指针
- Jaccard相似度和广义Jaccard相似度
- 从12306网站新验证码看Web验证码设计与破解
- 电机学(1) - 绪论
- VMware ESXi 6.5之前 缺少驱动处理方式
- java学习感想_Java学习感想
- Vue入门(10)axios
- 在linux上gc日志详解,JVM Parallel Scavenge GC日志详解
- 32位系统能够识别多达内存_C ++程序可打印多达N个术语的卢卡斯系列
- 新手学习实记(二、树莓派环境配置)
- CactiEZ网络流量监测图形分析
- 人工智能能否代替人类?
- matlab 极限环,ODE in MATLAB
热门文章
- 循环数组有几种方法?
- 简单说明CGI和动态请求是什么
- [计算机毕业设计]空谱联合的高光谱图像分类
- docker mysql 重置root密码
- Linux实战教程-专栏简介
- Oracle EBS AR_PAYMENT_SCHEDULES_ALL表整理
- 常用快递电子面单接口参数配置对照表
- (阅读笔记)PARE:A Simple and Strong Baseline for Monolingual and MultilingualDistantly Supervis
- html取消select下拉,取消下拉选项_jquery如何取消选择select下拉框
- 使用NPOI2.0.1.0自定义导出的excel文档数字为文本格式不能公式编辑计算的问题解决