分糖果问题

2022-03-13  本文已影响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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读