题目

There are N children standing in a line. Each child is assigned a rating value.

You are giving candies to these children subjected to the following requirements:

  • Each child must have at least one candy.
  • Children with a higher rating get more candies than their neighbors.

What is the minimum candies you must give?

题解

这道题和Trapping water那个是一样的想法,因为无论是水坑还是得到糖的小朋友,影响因素都不只一边,都是左右两边的最小值/最大值来决定的。

所以这道题跟上一道一样,也是左右两边遍历数组。

leftnums数组存从左边遍历,当前小朋友对比其左边小朋友,他能拿到糖的数量;

rightnums数组存从右边遍历,当前小朋友对比其右边小朋友,他能拿到的糖的数量。

最后针对这两个数组,每个小朋友能拿到的糖的数量就是这两个数最大的那个数,求总加和就好了。

代码如下:

 1     public int candy(int[] ratings) {  
 2         if(ratings==null || ratings.length==0)
 3             return 0;  
 4           
 5         int[] leftnums = new int[ratings.length];  
 6         int[] rightnums = new int[ratings.length];
 7         
 8         leftnums[0]=1;  
 9         for(int i=1;i<ratings.length;i++){  
10             if(ratings[i]>ratings[i-1])  
11                 leftnums[i] = leftnums[i-1]+1;  
12             else  
13                 leftnums[i] = 1;  
14         }
15         
16         rightnums[ratings.length-1] = leftnums[ratings.length-1];  
17         for(int i=ratings.length-2;i>=0;i--){
18             if(ratings[i]>ratings[i+1]) 
19                 rightnums[i] = rightnums[i+1]+1;
20             else
21                 rightnums[i] = 1;
22                 
23         }
24         
25         int res = 0;
26         for(int i = 0; i<ratings.length; i++)
27             res += Math.max(leftnums[i],rightnums[i]);
28         
29         return res;  
30     } 

Candy leetcode java相关推荐

  1. Sqrt(int x) leetcode java

    Reference: http://blog.csdn.net/lbyxiafei/article/details/9375735  题目: Implement int sqrt(int x). Co ...

  2. [剑指offer]面试题第[67]题[Leetcode][JAVA][第8题] 字符串转换整数 (atoi)[字符串]

    [问题描述] 请你来实现一个 atoi 函数,使其能将字符串转换成整数.首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止.接下来的转化规则如下:如果第一个非空字符为正或者 ...

  3. leetcode java输入输出方法,有关IntelliJ IDEA中LeetCode插件配置问题

    最初目的是在实验室电脑和笔记本电脑上同时配置好这个刷题插件,并且git互联,并锻炼自己debug以及输入输出. 前面的可以参考教程: 首先是在intellij上面下载安装好leetcode插件, 然后 ...

  4. leetcode java 大厂基础面试题附答案(二)

    目录 1. GC root 有哪些?(华为) 2. 传统 I/O 跟 NIO 的区别?(华为) 3. KAFKA 是什么?主要应用场景有哪些?(腾讯) 4. MYSQL 索引分类?(腾讯) 5. 了解 ...

  5. leetcode java 大厂基础面试题附答案(四)

    目录 1. 说一下泛型原理,并举例说明.(京东) 2. 讲下 Kafka.RabbitMQ.RocketMQ 之间的区别是什么?(京东) 3. 介绍下 MySQL 聚簇索引与非聚簇索引的区别(Inno ...

  6. leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组

    <span style="color:#ff4635">敬请关注博客,后期不断更新优质博文,谢谢</span> package leetcode.T018_ ...

  7. Candy -- LeetCode

    原题链接:  http://oj.leetcode.com/problems/candy/   这道题用到的思路和 Trapping Rain Water 是一样的,用动态规划.基本思路就是进行两次扫 ...

  8. leetcode java解题_leetcode解题技巧及相关Java知识(定期更新)

    这篇文章主要用来总结在leetcode刷题过程中学到的技巧,以及相关的Java基础知识. String 截取String字符串时,可使用str.subtring(a,b),a代表起始索引(从0开始), ...

  9. ZigZag Conversion leetcode java

    题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...

  10. leetcode word break java,Word Break leetcode java

    题目: Given a string s and a dictionary of words dict, determine if s can be segmented into a space-se ...

最新文章

  1. php 类似微信下拉菜单,微信小程序实现下拉框(附代码)
  2. python 反爬取数据
  3. VS2017 性能优化方法
  4. wifi网络结构(下)
  5. webrtc 语音流java_通过WebView WebRTC从麦克风传输语音时的语音识别
  6. linux 脚本 if else,基于shell的if和else详解
  7. dubbo源码深度解析_Spring源码深度解析:手把手教你搭建Spring开发环境
  8. EF架构~LinqToEntity里实现left join的一对一与一对多
  9. 更快地重复访问Java的Java类名?
  10. php fping,【Linux 命令】fping ping 包间隔时间详解
  11. HDU1164 Eddy's research I(解法二)【废除!!!】
  12. [HEOI2014]大工程
  13. 字符函数和字符串函数
  14. 什么是需求分析,如何进行需求分析?
  15. 20175208 张家华 MyCP
  16. 为图片添加斜体水印并保存水印图片
  17. ReviewBoard 的安装和使用(二)—— 邮箱的配置
  18. mt7621dtsi
  19. 为什么 transform-style: preserve-3d;不起效果
  20. [Chaosblade] chaosblade-jvm-exec和chaosblade交互

热门文章

  1. 计算机excel函数lookup,详细介绍数据查找VLookup函数在Excel中的应用举例
  2. c( )函数--R语言
  3. Unomi 成为 Apache 软件基金会顶级项目
  4. git 还原某个文件到特定版本
  5. Spring Cloud 与 Dubbo 对比整理(2)
  6. 从零开始学C#——不再更新,直接进入高阶教程
  7. OpenGLES.gpus_ReturnNotPermittedKillClient
  8. Unbuntu学习笔记之安装vmware tools
  9. 因社会不公大学生找不到工作
  10. 随机森林的基分类器可否由决策树替换为线性分类器或者K-NN?