分糖果问题

两次遍历即可

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



全部评论

相关推荐

比亚迪汽车新技术研究院 硬件工程师 总包21左右 硕士
点赞 评论 收藏
分享
jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务