题解 | #接雨水问题#

接雨水问题

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

/**
 * max water
 * @param arr int整型一维数组 the array
 * @param arrLen int arr数组长度
 * @return long长整型
 */
long long maxWater(int* arr, int arrLen) {
    // write code here
    int i = 0;
    int tmp = 0;
    int j = 0;
    long long num = 0;
    int pos = -1;
    while (i<arrLen-1)
    {
        j = i + 1;
        for ( ; j<arrLen; j++)
        {

            if (arr[j]>tmp)
            {
                tmp = arr[j];
                pos = j;
            }
            if (arr[j] >= arr[i])
            {
                for (int n = i; n<j; n++)
                {
                    num = num + arr[i] - arr[n];
                    tmp = 0;
                }
                i = j;
                break;
            }


        }
        if (j >= arrLen)
        {
            j = i + 1;
            for (; j<pos; j++)
            {
                num = num + tmp - arr[j];


            }
            i = pos;
            tmp = 0;
        }
    }
    return num;

}
全部评论
这时间复杂度不是n吧?
点赞
送花
回复
分享
发布于 2021-11-19 15:26

相关推荐

头像
05-27 20:32
已编辑
深度学习
工行数据中心 偏运维养老 到手可能18w
点赞 评论 收藏
转发
头像
04-09 14:29
Java
点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务