数组振幅通过php函数

时间:2011-09-29 21:25:57

标签: php arrays

我有这个问题,我需要解决,请帮助。 给出了由N个整数组成的非空零索引数组A.该阵列的幅度被定义为其两个元素之间的最大可能差异,即:幅度(A)= max {A [P] -A [Q]:0≤P,Q <1。 N}

写一个函数

功能幅度($ A);

给定由N个整数组成的非空零索引数组A,返回其幅度。

假设:

N是[1..1,000,000]范围内的整数; 数组A的每个元素都是[0..5,000,000]范围内的整数。 例如,给定数组A

A [0] = 10 A [1] = 2 A [2] = 44 A [3] = 15 A [4] = 39 A [5] = 20 该函数应该返回42。

复杂度:

预期的最坏情况时间复杂度为O(N); 预期的最坏情况空间复杂度是O(1),超出输入存储(不计入输入参数所需的存储)。 可以修改输入数组的元素。

1 个答案:

答案 0 :(得分:5)

你只是通过阵列。你从最大值和最小值开始。 对于每个元素,如果它大于max,则更新max,如果它低于min,则更新min。最后你只需要计算最大值和最小值之间的差值。

这只需要一次遍历数组,所以它是O(N)

function amplitude(array $A) {
    return max($A) - min($A);
}