博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】135. Candy【java】
阅读量:2499 次
发布时间:2019-05-11

本文共 1122 字,大约阅读时间需要 3 分钟。

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?

public class Solution {    public int candy(int[] ratings) {        int[] candies = new int[ratings.length];        Arrays.fill(candies, 1);//每人先发一个糖果        for (int i = 1; i < ratings.length; i++) {            if (ratings[i] > ratings[i - 1]) {                candies[i] = candies[i - 1] + 1;//从左向右遍历,确保相邻的两个孩子,如果右侧孩子比左侧孩子评分高,则右侧孩子的比左侧的孩子手中的果多一个            }        }        for (int i = ratings.length - 2; i >= 0; i--) {            if (ratings[i] > ratings[i + 1]) {                candies[i] =  Math.max(candies[i], candies[i + 1] + 1);//从右向左遍历,确保相邻的两个孩子,如果左侧孩子比右侧孩子评分高,则左侧孩子应该                                                                      //保证比右侧评分低的孩子多一个糖果。            }        }        int sum = 0;        for (int candy : candies) {           sum += candy;        }        return sum;    } }

转载地址:http://cxqrb.baihongyu.com/

你可能感兴趣的文章
git 常用命令 入门
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>
spring boot jpa 实现拦截器
查看>>
jenkins + maven+ gitlab 自动化部署
查看>>
Pull Request流程
查看>>
Lambda 表达式
查看>>
函数式数据处理(一)--流
查看>>
java 流使用
查看>>
java 用流收集数据
查看>>
java并行流
查看>>
CompletableFuture 组合式异步编程
查看>>
mysql查询某一个字段是否包含中文字符
查看>>
Java中equals和==的区别
查看>>
JVM内存管理及GC机制
查看>>
Java:按值传递还是按引用传递详细解说
查看>>