Dada una array position[] que consta de N enteros donde position[i] denota la posición del i -ésimo elemento, la tarea es encontrar el costo mínimo requerido para mover todos los elementos a la misma posición realizando cualquiera de las siguientes dos operaciones :
- Mover de posición[i] a posición[i] + 2 o posición[i] – 2 . Costo = 0.
- Mover de posición[i] a posición[i] + 1 o posición[i] – 1 . Costo = 1.
Ejemplos:
Entrada: posición[] = {1, 2, 3}
Salida: 1
Explicación:
Operación 1: Mover el elemento de la posición 3 a la posición 1. Costo = 0.
Operación 2: Mover el elemento de la posición 2 a la posición 1. Costo = 1.
Por lo tanto, costo total = 1.Entrada: posición[] = {2, 2, 2, 3, 3}
Salida: 2
Explicación: Mover los dos elementos de la posición 3 a la posición 2. Costo de cada operación = 1. Por lo tanto, costo total = 2.
Enfoque: La idea es atravesar la array y contar el número de elementos pares e impares . Para cada operación que implique un incremento o decremento de dos índices, el costo siempre será 0. El costo cambia solo al mover un elemento de la posición par a la impar o viceversa. Por lo tanto, el costo mínimo requerido es el mínimo del conteo de elementos pares e impares presentes en el arreglo position[] .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to implement // the above approach #include <iostream> using namespace std; // Function to find the minimum // cost required to place all // elements in the same position int minCost(int arr[], int arr_size) { // Stores the count of even // and odd elements int odd = 0, even = 0; // Traverse the array arr[] for(int i = 0; i < arr_size; i++) { // Count even elements if (arr[i] % 2 == 0) even++; // Count odd elements else odd++; } // Print the minimum count cout << min(even, odd); } // Driver Code int main() { // Given array int arr[] = { 1, 2, 3 }; int arr_size = sizeof(arr) / sizeof(arr[0]); // Function Call minCost(arr, arr_size); } // This code is contributed by khushboogoyal499
Java
// Java program to implement // the above approach import java.io.*; class GFG { // Function to find the minimum // cost required to place all // elements in the same position public void minCost(int[] arr) { // Stores the count of even // and odd elements int odd = 0, even = 0; // Traverse the array arr[] for (int i = 0; i < arr.length; i++) { // Count even elements if (arr[i] % 2 == 0) even++; // Count odd elements else odd++; } // Print the minimum count System.out.print( Math.min(even, odd)); } // Driver Code public static void main(String[] args) { GFG obj = new GFG(); // Given array int arr[] = { 1, 2, 3 }; // Function Call obj.minCost(arr); } }
Python3
# Python3 program to implement # the above approach # Function to find the minimum # cost required to place all # elements in the same position def minCost(arr): # Stores the count of even # and odd elements odd = 0 even = 0 # Traverse the array arr[] for i in range(len(arr)): # Count even elements if (arr[i] % 2 == 0): even += 1 # Count odd elements else: odd += 1 # Print the minimum count print(min(even, odd)) # Driver Code if __name__ == '__main__': # Given array arr = [ 1, 2, 3 ] # Function Call minCost(arr) # This code is contributed by mohit kumar 29
C#
// C# program to implement // the above approach using System; class GFG{ // Function to find the minimum // cost required to place all // elements in the same position public void minCost(int[] arr) { // Stores the count of even // and odd elements int odd = 0, even = 0; // Traverse the array arr[] for(int i = 0; i < arr.Length; i++) { // Count even elements if (arr[i] % 2 == 0) even++; // Count odd elements else odd++; } // Print the minimum count Console.Write(Math.Min(even, odd)); } // Driver Code public static void Main() { GFG obj = new GFG(); // Given array int[] arr = { 1, 2, 3 }; // Function Call obj.minCost(arr); } } // This code is contributed by sanjoy_62
Javascript
<script> // JavaScript program to implement // the above approach // Function to find the minimum // cost required to place all // elements in the same position function minCost(arr) { // Stores the count of even // and odd elements let odd = 0, even = 0; // Traverse the array arr[] for (let i = 0; i < arr.length; i++) { // Count even elements if (arr[i] % 2 == 0) even++; // Count odd elements else odd++; } // Print the minimum count document.write( Math.min(even, odd)); } // Driver code // Given array let arr = [ 1, 2, 3 ]; // Function Call minCost(arr); // This code is contributed by susmitakundugoaldanga. </script>
1
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por deepapandey364 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA