题解 | #接雨水问题#

接雨水问题

https://www.nowcoder.com/practice/31c1aed01b394f0b8b7734de0324e00f

/**
 * max water
 * @param arr int整型一维数组 the array
 * @param arrLen int arr数组长度
 * @return long长整型
 */
#include <math.h>
#include <string.h>
long long maxWater(int* arr, int arrLen ) {
    // write code here
    int leftMax[arrLen];
    int rightMax[arrLen];
    int res = 0;
    memset(leftMax, 0, sizeof(leftMax));
    memset(rightMax, 0, sizeof(rightMax));

    leftMax[0] = arr[0];
    for(int i=1;i<arrLen;i++){
        leftMax[i] = fmax(leftMax[i-1],arr[i]);
    }

    rightMax[arrLen-1] = arr[arrLen-1];
    for(int j = arrLen-2;j>=0;j--){
        rightMax[j] = fmax(rightMax[j+1], arr[j]);
    }

    for(int k=0;k<arrLen;k++){
        res+=fmin(rightMax[k], leftMax[k]) - arr[k];
    }
    return res;

}

全部评论

相关推荐

08-27 12:02
已编辑
南京外国语学校 网络安全
再来一遍:实则劝各位不要all in华子,不要相信华为hr
点赞 评论 收藏
分享
09-13 17:25
亲切的00后在笔试:我也遇到了,所以我早他一步查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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