输入数组是:
A[0] = 23171
A[1] = 21015
A[2] = 21123
A[3] = 21366
A[4] = 21013
A[5] = 21367
使命是找到最大的利润。例如 A[3] - A[2] = 243 我的代码是:
class Solution {
int profit = 0;
public int solution(int[] A) {
for (int i = 0;i < A.length; i++){
for (int j = i + 1; j < A.length; j++){
if(A[j] - A[i] > profit)
profit = A[j] - A[i];
}
}
return profit;
}
}
结果假设为 365,但它在更大的输入时会爆炸。该代码的时间复杂度为 O(N 2 ),但可以使用 O(N)。我真的看不出如何避免在这里嵌套......任何正确方向的指针都值得赞赏。