[笔试真题]派分糖果
题目描述
有N个孩子站成一排,每个孩子有一个分值。给这些孩子派发糖果,需要满足如下需求:
1、每个孩子至少分到一个糖果
2、分值更高的孩子比他相邻位的孩子获得更多的糖果
求至少需要分发多少糖果?
输入描述:
0,1,0
输出描述:
4
输入示例:
5,4,1,1
输出示例:
7
思路
从左到右遍历,当前孩子的分值如果比其左边孩子的高,当前孩子的糖果数等于其左边孩子的糖果数加 1;
从右到左遍历,当前孩子的分值如果比其右边孩子的高,当前孩子的糖果数等于其右边孩子的糖果数加 1 和 自己糖果数的较大值。
代码实现
import java.util.Scanner;/*** @author ellen* @date 2020-01-10 14:20* @description:派分糖果*/
public class Main{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();String[] arrStr = s.split(",");int[] arr = new int[arrStr.length];for (int i = 0; i < arrStr.length; i++) {arr[i] = (int)arrStr[i].charAt(0) - 48;}System.out.println(candy(arr));}private static int candy(int[] candies){int sum = 0;int[] sums = new int[candies.length];for (int i = 0; i < sums.length; i++) {sums[i] = 1;}// 从左到右遍历,当前孩子的分值如果比其左边孩子的高,当前孩子的糖果数等于其左边孩子的糖果数加 1for (int i = 1; i < sums.length; i++) {if(candies[i] > candies[i - 1]){sums[i] = sums[i - 1] + 1;}}// 从右到左遍历,当前孩子的分值如果比其右边孩子的高,当前孩子的糖果数// 等于其右边孩子的糖果数加 1 和 自己糖果数的较大值for (int i = sums.length - 2; i >= 0; i--) {if(candies[i] > candies[i + 1]){sums[i] = Math.max(sums[i], sums[i + 1] + 1);}}for (int i = 0; i < sums.length; i++) {sum += sums[i];}return sum;}
}
[笔试真题]派分糖果相关推荐
- 华为OD机试真题:分糖果-均分【2022 Q1 Q2 |200分】
题目描述: 现有几袋糖果,老师要将糖果分给小张和小王两个同学,每一袋都有一定数量的糖果,每袋糖果只能全部分给他们其中一人,要求最终两人分得糖果的数量相同. 输入:糖果的袋数和各袋中糖果的数量: 输出: ...
- 华为OD机试真题:分糖果【2022 Q1 Q2 |200分】
题目描述 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们. 当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果. 小明最少需要多少次(取出.放 ...
- 笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)
笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2.4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定) 解析: 想让甲赢,只需保证最后剩8颗糖(乙取2 ...
- 2007年9月c语言真题及答案,2007年9月二级C语言笔试真题和答案(已再修改).doc
2007年9月二级C语言笔试真题和答案(已再修改) 2007年9月二级C语言笔试真题及答案 (考试时间:120分钟,满分100分) 一.选择题((1)-(10)每题2分,(11)-(50)每题1分.共 ...
- 【笔试题】京东2017秋招笔试真题
笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...
- 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...
2003年4月全国计算机等级考试二级vb笔试真题附答案 (19页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 15.9 积分 2003年4月全国计算机等级 ...
- 360 c语言 笔试,奇虎360校招的笔试真题
选择题有45个? 好像是,三道简答题, 简答题: 1.设计一个课程表(包括目标人群.核心功能.特色设计); 2.说ATM的缺点,改进方法; 3.如何让李开复等互联网大牌关注你的微薄? 选择题记得不是很 ...
- 网易2017春招笔试真题编程题集合
网易2017春招笔试真题编程题集合 题目来源:牛客网 https://www.nowcoder.com/profile/7952866/test/7811777/83061 1.双核处理 题目描述 一 ...
- 腾讯2018秋招笔试真题(1)
腾讯2018秋招笔试真题 小Q的歌单 [题目描述]小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个 总长度正好为 K 的歌单,每首歌最多只能在歌 ...
最新文章
- 从原理到落地,七大维度读懂协同过滤推荐算法
- latex绘制表格table
- 技术久了,偶尔放松下吧,看看这些小样,很美好!
- layer.open子页面调用父页面的方法_记好这 24 个 ES6 方法,用来解决实际开发的 JS 问题...
- 一轮项目冲刺——移山小分队(2)
- 华为2014校园招聘的机试题目
- Linux命令之 -- export 设置/显示系统环境变量
- 鼠标移动到版块图标产生的渐变效果
- 前端-requests-flask对应关系 restful
- 光斑质心检测之曲线拟合求亚像素位置的三种方式
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
- 软件测试技术进阶篇——花椒测试平台 - 接口篇
- 糖葫芦低通滤波器的设计
- Gallery 是国外一个免费开源的图库相册软件
- kettle使用httpClient获取ES索引数据
- 博奥导出工程项目电子表格_博奥造价软件导出excel表格无数据原因-2015年基础教育年报导出的电子表格没有数据,什么原因?...
- Spring Kafka 之 @KafkaListener 单条或批量处理消息
- 学习笔记(04):21天通关Python(视频课)-字符串高级用法
- 游戏术语扫盲贴(手游人必懂)
- 时间序列:Shapelets
热门文章
- Python 中的tips总结
- layer tips的偏移设置
- LInux下 /bin、/sbin、/usr/sbin、/usr/bin 目录的作用和区别
- 搭建目标检测模型之Harmonizing Transferability and Discriminability for Adapting Object Detectors
- 蓝桥杯—打印十字图—Java
- 数字荧光算法色温显示频次信息
- 2021年中国锡行业现状及其龙头企业分析:锡业股份[图]
- windows 批处理命令打开文件
- 正则表达式匹配标点符号
- “任务管理器已被管理员禁用”解决方案