分糖果问题

两次遍历即可

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;
    }



全部评论

相关推荐

06-25 16:00
武汉大学 Java
工科研究生底薪工资就开3k啊??
机械打工仔:写文章提成的岗位工资低,你怪工科?
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
06-27 15:15
长安大学 Java
哈哈哈,你是老六:这种就是培训机构骗钱的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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