每日一题——分发糖果
分发糖果:n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目 。
思路:先从前向后确定右孩子大于左孩子的情况,再从后先前确定左孩子大于右孩子的情况。如果从两边一起考虑会顾此失彼。
public int candy(int[] ratings) {int[] array = new int[ratings.length];for (int i = 0; i < array.length; i++) {array[i] = 1; //最少有一个糖果}for (int i = 1; i < ratings.length; i++){ //从前向后if (ratings[i] > ratings[i - 1]){array[i] = array[i - 1] + 1;}}for (int i = ratings.length - 2; i >= 0; i--){if (ratings[i] > ratings[i + 1]){array[i] = Math.max(array[i], array[i + 1] + 1); //取最大值}}int result = 0;for (int a :array) {result += a;}return result;}
每日一题——分发糖果相关推荐
- 135. 分发糖果 【每日一题】
135. 分发糖果 思路 两次遍历,先从左到右计算出每个人的糖果数,这一步就是后一个比前一个大就在前一个基础上+1,不然置为1,从这个思路来来看,我们这一趟酒吧升序的给基本算好了,但是降序的我们现在全 ...
- LeetCode算法题0:分发糖果【贪心算法】
文章目录 前言 一.题目 二.思路详解 三.搞点实际点儿的(C++实现) 1.略显粗糙的代码实现 2.稍显精致的代码实现 3.最终的代码实现 4.提交结果 总结 前言 本文记录自己在LeetCode上 ...
- 【每日一题】 888. 公平的糖果棒交换
[每日一题] 888. 公平的糖果棒交换 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 难度: 简单 爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大 ...
- Leetcode每日一题总目录(动态更新。。。)
0. 概要 leecode每日一题(也可能多题)题解跟踪记录及总目录. 常用算法解题思路和技巧及数据结构: 预处理:数组排序(954),哈希表... 双指针法 682,125,905 单向链表 2 双 ...
- [每日一题]0:每日一题汇总
每日一题 锻炼编程能力,每日尽量至少更新一道算法编程题,博客内主要更新学习C/C++.以及Linux的相关知识点,希望在记录学习过程的同时也能方便遇到相同问题的人,方便回顾复习,也希望能够与大家一起交 ...
- 通俗易懂:贪心算法(一):分配问题 (力扣455分发饼干 和135分发糖果)
看完本文,可以顺便解决leetcode以下两个题目: 455.分发饼干(简单) 135.分发糖果(困难) 一.通俗易懂的 贪心算法 |思想 贪心算法就是采用贪心的策略,保证每一次的操作都是局部最优的, ...
- 【LeetCode】贪心算法--分发糖果(135)
今日题目 老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分. 你需要按照以下要求,帮助老师给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果.相邻的孩子中, ...
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day34】—— 消息队列2
大家好,我是陈哈哈,北漂五年.相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以每日3题的形式,带你过一遍 ...
- 安卓 每日一题 2020年3月问题及答案
Android 3月2日题: onMeasure是干什么的? 答案: onMeasure方法主要是用于度量ViewGroup的子view的大小同时确定和保存自己ViewGroup的大小,将xml中的布 ...
最新文章
- 3.2亿人都在刷抖音,而优秀的人在看这几个公众号!
- php替换时 css中的图片不显示不出来,URL重写:CSS,JS和图像未加载
- iOS 11开发教程(十三)iOS11应用编辑界面添加视图
- 5GS 协议栈 — N1 接口的协议栈(NAS)
- 【学习】Android开入门教程
- Hi3516A开发--USB PCB 设计建议
- x86服务器当虚拟化的存储,X86服务器虚拟化实施方案.doc
- lombok的使用三部曲及使用中遇到的问题(持续更新)
- 未来计算机控制器趋势,未来DCS控制系统技术发展4大趋势
- Linux 文件特殊权限 SUID、SGID 与 SBIT
- QTextEdit 不允许输入文字
- Python项目开发公用方法--excel生成方法
- VIM编辑器使用的小技巧
- (13)Spring框架----Spring与Mybatis的框架整合(XML配置详解)
- 【有限元分析】圣维南原理
- [Sql2008错误问题] 配置系统未能初始化 0x84B10001
- 【ssl认证、证书】java中的ssl语法API说明(SSLContext)、与keytool 工具的联系
- iVMS-4200 Vs区别_76840红单足球预测 法甲 21:00 安格斯 VS 梅斯
- padStart与padEnd方法
- 程序:摄氏度和华氏度的相互转化