题解 | #分糖果问题#

分糖果问题

http://www.nowcoder.com/practice/76039109dd0b47e994c08d8319faa352

/**
 * pick candy
 * @param arr int整型一维数组 the array
 * @param arrLen int arr数组长度
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int candy(int* arr, int arrLen ) {
    int count=0;
    int b[arrLen];
    for(int i=0;i<arrLen;i++){
        b[i]=1;
    }
    for(int i=1;i<arrLen;i++){
        if(arr[i-1]<arr[i]){
           b[i]=b[i-1]+1;
        }
    }
    for(int i=arrLen-1;i>0;i--){
        if(arr[i-1]>arr[i]&&b[i-1]<=b[i]){
            b[i-1]=b[i]+1;
        }
    }
    for(int i=0;i<arrLen;i++){
        count+=b[i];
    }
    return count;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务