美文网首页
分糖果问题

分糖果问题

作者: 赵老拖 | 来源:发表于2022-03-13 22:38 被阅读0次

    描述

    一群孩子做游戏,现在请你根据游戏得分来发糖果,要求如下:

    1. 每个孩子不管得分多少,起码分到一个糖果。
    2. 任意两个相邻的孩子之间,得分较多的孩子必须拿多一些糖果。(若相同则无此限制)
    import java.util.*;
    
    
    public class Solution {
        /**
         * pick candy
         * @param arr int整型一维数组 the array
         * @return int整型
         */
        public int candy (int[] arr) {
            // write code here
           int[] candy = new int[arr.length];
           //首先默认每人分一块糖
           for(int i = 0;i<arr.length;i++){
                candy[i] = 1;
           }
           //从左到右 如果左边分数小于右边分数;右边糖果就比左边多分一个
           for(int i = 0 ;i<arr.length-1;i++){
               if(arr[i]<arr[i+1]){
                    candy[i+1] =  candy[i]+1;
               }
           }
             //从右到左 如果右边分数小于左边分数;并且右边糖果数大于左边糖果
           for(int i = arr.length-1 ;i>0;i--){
               if(arr[i]<arr[i-1]&&candy[i]>=candy[i-1]){
                    candy[i-1] =  candy[i]+1;
               }
           }
            int sum = 0;
             for(int i = 0 ;i<=arr.length-1;i++){
               sum +=candy[i];
           }
            return sum;
        }
    }
    

    相关文章

      网友评论

          本文标题:分糖果问题

          本文链接:https://www.haomeiwen.com/subject/fzgddrtx.html