题目描述

有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;}
}

[笔试真题]派分糖果相关推荐

  1. 华为OD机试真题:分糖果-均分【2022 Q1 Q2 |200分】

    题目描述: 现有几袋糖果,老师要将糖果分给小张和小王两个同学,每一袋都有一定数量的糖果,每袋糖果只能全部分给他们其中一人,要求最终两人分得糖果的数量相同. 输入:糖果的袋数和各袋中糖果的数量: 输出: ...

  2. 华为OD机试真题:分糖果【2022 Q1 Q2 |200分】

    题目描述 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们. 当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果. 小明最少需要多少次(取出.放 ...

  3. 笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2、4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定)

    笔试真题:100颗糖果,甲乙轮流从糖果盒中取出糖果,每次可取出2.4或6颗,若取得最后糖果的玩家为最终胜者,若甲先取z则(甲获胜,乙获胜,平局,不确定) 解析: 想让甲赢,只需保证最后剩8颗糖(乙取2 ...

  4. 2007年9月c语言真题及答案,2007年9月二级C语言笔试真题和答案(已再修改).doc

    2007年9月二级C语言笔试真题和答案(已再修改) 2007年9月二级C语言笔试真题及答案 (考试时间:120分钟,满分100分) 一.选择题((1)-(10)每题2分,(11)-(50)每题1分.共 ...

  5. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  6. 计算机二级vb2003年4月考试题,2003年4月全国计算机等级考试二级vb笔试真题附答案...

    2003年4月全国计算机等级考试二级vb笔试真题附答案 (19页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 15.9 积分 2003年4月全国计算机等级 ...

  7. 360 c语言 笔试,奇虎360校招的笔试真题

    选择题有45个? 好像是,三道简答题, 简答题: 1.设计一个课程表(包括目标人群.核心功能.特色设计); 2.说ATM的缺点,改进方法; 3.如何让李开复等互联网大牌关注你的微薄? 选择题记得不是很 ...

  8. 网易2017春招笔试真题编程题集合

    网易2017春招笔试真题编程题集合 题目来源:牛客网 https://www.nowcoder.com/profile/7952866/test/7811777/83061 1.双核处理 题目描述 一 ...

  9. 腾讯2018秋招笔试真题(1)

    腾讯2018秋招笔试真题 小Q的歌单 [题目描述]小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个 总长度正好为 K 的歌单,每首歌最多只能在歌 ...

最新文章

  1. 从原理到落地,七大维度读懂协同过滤推荐算法
  2. latex绘制表格table
  3. 技术久了,偶尔放松下吧,看看这些小样,很美好!
  4. layer.open子页面调用父页面的方法_记好这 24 个 ES6 方法,用来解决实际开发的 JS 问题...
  5. 一轮项目冲刺——移山小分队(2)
  6. 华为2014校园招聘的机试题目
  7. Linux命令之 -- export 设置/显示系统环境变量
  8. 鼠标移动到版块图标产生的渐变效果
  9. 前端-requests-flask对应关系 restful
  10. 光斑质心检测之曲线拟合求亚像素位置的三种方式
  11. docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
  12. 软件测试技术进阶篇——花椒测试平台 - 接口篇
  13. 糖葫芦低通滤波器的设计
  14. Gallery 是国外一个免费开源的图库相册软件
  15. kettle使用httpClient获取ES索引数据
  16. 博奥导出工程项目电子表格_博奥造价软件导出excel表格无数据原因-2015年基础教育年报导出的电子表格没有数据,什么原因?...
  17. Spring Kafka 之 @KafkaListener 单条或批量处理消息
  18. 学习笔记(04):21天通关Python(视频课)-字符串高级用法
  19. 游戏术语扫盲贴(手游人必懂)
  20. 时间序列:Shapelets

热门文章

  1. Python 中的tips总结
  2. layer tips的偏移设置
  3. LInux下 /bin、/sbin、/usr/sbin、/usr/bin 目录的作用和区别
  4. 搭建目标检测模型之Harmonizing Transferability and Discriminability for Adapting Object Detectors
  5. 蓝桥杯—打印十字图—Java
  6. 数字荧光算法色温显示频次信息
  7. 2021年中国锡行业现状及其龙头企业分析:锡业股份[图]
  8. windows 批处理命令打开文件
  9. 正则表达式匹配标点符号
  10. “任务管理器已被管理员禁用”解决方案