题解 | #分糖果问题#TOP95

import java.util.*;


public class Solution {
    /**
     * pick candy
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int candy (int[] arr) {
        // write code here
        if(arr == null || arr.length == 0){
            return 0;
        }
        int len = arr.length;
        int[] temp = new int[len];
        //初始化
        for(int i = 0;i < len;i++){
            temp[i] = 1;
        }
        //从左到右 如果大于则递增+1,多拿一颗糖
        for(int i = 1;i< len;i++){
            if(arr[i] > arr[i-1]){
                temp[i] = temp[i-1] + 1;
            }
        }
        int result = temp[len - 1];
        for(int i = len - 2 ;i>=0 ;i--){
            //如果左边的数大,并且左边的糖果小
            if(arr[i] > arr[i+1] && temp[i] <= temp[i+1]){
                temp[i] = temp[i+1]+1;
            }
            result += temp[i];
        }
        return result;
        
    }
}
全部评论

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务