题解 | #分糖果问题#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;
        
    }
}
全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
我:“加班需要有加班工资。”&nbsp;hr:“为什么?”&nbsp;哈哈哈哈哈哈哈离大谱
juntenor:你确实太理想化了,对社会不了解呀。这个和HR没有关系,这是国内特色,不然怎么还会有外包就这种逆天的存在呢。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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