Dada una array arr[] que consta de N enteros, la tarea es encontrar la suma máxima de diferencias absolutas entre todos los pares distintos del triplete en la array.
Ejemplos:
Entrada: arr[] = {1, 2, 3, 4}
Salida: 6
Explicación:
El triplete válido es (1, 3, 4) como suma = |1 – 4| + |1 – 3| + |3 – 4| = 6, que es el máximo entre todos los tripletes.Entrada: arr[] = {2, 2, 2}
Salida: 0
Enfoque: La idea para resolver el problema dado es ordenar la array en orden ascendente y encontrar la suma de las diferencias absolutas entre los pares del primer y los dos últimos elementos de la array . Siga los pasos a continuación para resolver el problema:
- Inicialice una variable, digamos sum , para almacenar la suma máxima posible.
- Ordene la array dada arr[] en orden ascendente.
- Encuentre la suma de las diferencias entre los pares del primero y los dos últimos elementos de la array , es decir, sum = (arr[N – 2] – arr[0]) + (arr[N – 1] – arr[0]) + (arr[N – 2] – arr[N – 1]) .
- Después de completar los pasos anteriores, imprima el valor de la suma como resultado .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to find the maximum sum of // absolute differences between // distinct pairs of triplet in array void maximumSum(int arr[], int N) { // Stores the maximum sum int sum; // Sort the array in // ascending order sort(arr, arr + N); // Sum of differences between // pairs of the triplet sum = (arr[N - 1] - arr[0]) + (arr[N - 2] - arr[0]) + (arr[N - 1] - arr[N - 2]); // Print the sum cout << sum; } // Driver Code int main() { int arr[] = { 1, 3, 4, 2 }; int N = sizeof(arr) / sizeof(arr[0]); maximumSum(arr, N); return 0; }
Java
// Java program for the above approach import java.util.*; class GFG { // Function to find the maximum sum of // absolute differences between // distinct pairs of triplet in array static void maximumSum(int[] arr, int N) { // Stores the maximum sum int sum; // Sort the array in // ascending order Arrays.sort(arr); // Sum of differences between // pairs of the triplet sum = (arr[N - 1] - arr[0]) + (arr[N - 2] - arr[0]) + (arr[N - 1] - arr[N - 2]); // Print the sum System.out.println(sum); } // Driver Code public static void main(String[] args) { int[] arr = { 1, 3, 4, 2 }; int N = arr.length; maximumSum(arr, N); } } // This code is contributed by susmitakundugoaldanga.
Python3
# Python program for the above approach # Function to find the maximum sum of # absolute differences between # distinct pairs of triplet in array def maximumSum(arr, N): # Stores the maximum sum sum = 0 # Sort the array in # ascending order arr.sort() # Sum of differences between # pairs of the triplet sum = (arr[N - 1] - arr[0]) + (arr[N - 2] - arr[0]) + (arr[N - 1] - arr[N - 2]); # Print the sum print(sum) # Driver Code arr = [ 1, 3, 4, 2 ] N = len(arr) maximumSum(arr, N) # This code is contributed by rohitsingh07052.
C#
// C# program for the above approach using System; using System.Collections.Generic; class GFG { // Function to find the maximum sum of // absolute differences between // distinct pairs of triplet in array static void maximumSum(int[] arr, int N) { // Stores the maximum sum int sum; // Sort the array in // ascending order Array.Sort(arr); // Sum of differences between // pairs of the triplet sum = (arr[N - 1] - arr[0]) + (arr[N - 2] - arr[0]) + (arr[N - 1] - arr[N - 2]); // Print the sum Console.Write(sum); } // Driver Code public static void Main() { int[] arr = { 1, 3, 4, 2 }; int N = arr.Length; maximumSum(arr, N); } } // This code is contributed by chitranayal.
Javascript
<script> // Javascript program for the above approach // Function to find the maximum sum of // absolute differences between // distinct pairs of triplet in array function maximumSum(arr, N) { // Stores the maximum sum let sum; // Sort the array in // ascending order arr.sort(); // Sum of differences between // pairs of the triplet sum = (arr[N - 1] - arr[0]) + (arr[N - 2] - arr[0]) + (arr[N - 1] - arr[N - 2]); // Print the sum document.write(sum); } // Driver Code let arr = [ 1, 3, 4, 2 ]; let N = arr.length; maximumSum(arr, N); // This code is contributed by Mayank Tyagi </script>
6
Complejidad de tiempo: O(N*log N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por dharanendralv23 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA