📜  具有最大总和的对数的 PHP 程序

📅  最后修改于: 2022-05-13 02:24:09.591000             🧑  作者: Mango

具有最大总和的对数的 PHP 程序

给定一个数组 arr[],计算对 arr[i], arr[j] 的数量,使得 arr[i] + arr[j] 最大且 i < j。

Example :
Input  : arr[] = {1, 1, 1, 2, 2, 2}
Output : 3
Explanation: The maximum possible pair 
sum where i
Method 1 (Naive) Traverse a loop i from 0 to n, i.e length of the array and another loop j from i+1 to n to find all possible pairs with i

PHP










 







Output : 3Time complexity:O(n^2)Method 2 (Efficient) If we take a closer look, we can notice following facts. Maximum element is always part of solutionIf maximum element appears more than once, then result is maxCount * (maxCount - 1)/2. We basically need to choose 2 elements from maxCount (maxCountC2).If maximum element appears once, then result is equal to count of second maximum element. We can form a pair with every second max and maxPHP $maxVal)         {            $secondMax = $maxVal;            $secondMaxCount = $maxCount;            $maxVal = $a[$i];            $maxCount = 1;        }        else if ($a[$i] == $secondMax)        {            $secondMax = $a[$i];            $secondMaxCount++;        }        else if ($a[$i] > $secondMax)         {            $secondMax = $a[$i];            $secondMaxCount = 1;        }    }      // If maximum element appears    // more than once.    if ($maxCount > 1)        return $maxCount *               ($maxCount - 1) / 2;      // If maximum element     // appears only once.    return $secondMaxCount;}  // Driver Code$array = array(1, 1, 1, 2,                2, 2, 3 );$n = count($array);echo sum($array, $n);  // This code is contributed by anuj_67.?>Output :  3Time complexity:O(n) Please refer complete article on Number of pairs with maximum sum for more details!