阿里测评 分贴纸

https://blog.csdn.net/weixin_41961130/article/details/81111622

现在很多家长都会送小孩子去培训中心学习舞蹈,
有一次舞蹈培训中心考试,因为小孩子要哄着才能更喜欢学,
所以老师给孩子们准备了小贴纸奖励孩子,
考试结束以后孩子们按照大小个站成一排,老师按照顺序给孩子们
发小贴纸,每个孩子都会至少得到一个小贴纸,因为是按照大小个
站成一排的,所以相邻的孩子成绩略有高低,为了鼓励相邻孩子
向成绩好的孩子学习,成绩高的孩子会比成绩弱的孩子得到的小贴纸多,
请问需要多少小贴纸发给孩子们?

思路:首先定义一个数组,记录每个人得到的糖果,然后逐个遍历等级数组。先判断第i个等级和i+1等级,接着判断与i-1.具体代码如下:

import java.util.*;
class Solution 
{
    public int candy(int[] ratings)
    {
        if(ratings==null || ratings.length==0)
            return 0;
        int len=ratings.length;
        int num=0;
        int[] candy=new int[len];
        Arrays.fill(candy,1);//把candy的元素初始化为1;
        for(int i=0;i<len;i++)
        {
            if(i!=len-1 && ratings[i]>ratings[i+1] && candy[i]<=candy[i+1])
            {
                candy[i]=candy[i+1]+1;
            }
            if(i>0 && ratings[i]>ratings[i-1] && candy[i]<=candy[i-1])
            {
                candy[i]=candy[i-1]+1;
            }
        }
        for(int i=0;i<len;i++)
            num+=candy[i];
    return num;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值