题库 软件开发 题目列表 输入:[1,8,6,2,5,4,8,3,7] 输出:49 目前某...
单选题

输入:[1,8,6,2,5,4,8,3,7] 输出:49
目前某学生用如下java代码解决了此问题,设height数组长度为N,且N足够大,他的部分代码如下,请你判断他代码(maxArea函数)的时间复杂的以及额外的空间复杂度(不包括传入的height数组)分别为?
int calculateArea(int start, int end, int sHeight, int eHeight) {
    int len = end - start;
    int height = Math.min(sHeight, eHeight);
    return len * height;
}

public int maxArea(int[] height) {
    int maxLen = -1;
    int arrLen = height.length;
    for (int i = 0, j = arrLen - 1; i < arrLen; ) {
        if (i == j) {
            return maxLen;
        }
        int area = calculateArea(i, j, height[i], height[j]);
        maxLen = Math.max(area, maxLen);
        if (height[i] > height[j]) {
            j--;
        } else {
            i++;
        }
    }

    return 0;
}

A.

O(N),O(1)

B.

O(N),O(N)

C.

O(N),O(logN)

D.
O(N2),O(1)
E.

O(NlogN),O(1)

题目信息
校招真题
-
正确率
0
评论
12
点击