分糖果问题

两次遍历即可

public int candy (int[] arr) {
      
        int l=arr.length;
        
        
        int[] nums=new int[l];
        
        Arrays.fill(nums,1);
        
        int count=0;
        
        for (int i=1;i<l;i++){
            
            if(arr[i]>arr[i-1]) nums[i]=nums[i-1]+1;
            
        }
        
        for (int i=l-1;i>0;i--){
            
            if(arr[i-1]>arr[i]) nums[i-1]=Math.max(nums[i-1],nums[i]+1);
            
        }
        

        for (int i=0;i<l;i++) count+=nums[i];
        
        
        return count;
    }



全部评论

相关推荐

qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
谦虚的布莱克选钝角:华为呢,那个很热情的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-18 17:37
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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