一个通过PHP实现的振幅数组函数


array amplitude through a php function

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

写函数

函数振幅(美元);

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

假设:

N为整数,取值范围为[1 ~ 1,000,000];数组A中每个元素的取值范围为[0 ~ 5,000,000]的整数。例如,给定数组A

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

复杂性:

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

你只是遍历数组。从最大值和最小值开始。然后,对于每个元素,如果它大于max,更新max,如果它小于min,更新min,最后你只需要计算max和min的差值。

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

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