In diesem Problem erhalten wir ein Array arr der Größe n. Unsere Aufgabe besteht darin, die Anzahl der Operationen zu ermitteln, die erforderlich sind, um alle Array-Elemente gleich zu machen
Die Operation ist definiert als die Verteilung der Elemente des Arrays vom Element mit dem größten Gewicht bis zu einem gleichen Gewicht aller Elemente.
Wenn es nicht möglich ist, Array-Elemente gleich zu machen, geben Sie -1 aus.
Nehmen wir ein Beispiel, um dieses Problem zu verstehen,
Input : arr[] = {7, 3, 3, 3} Output : 3
Das zugewiesene Array ist {4, 4, 4, 4}
Eine einfache Möglichkeit, dieses Problem zu lösen, besteht darin, The zu finden Maximalwert des Arrays. Dieser Maximalwert wird dann verwendet, um zu prüfen, ob alle Elemente des Arrays gleich sind und ob der Wert gleich dem Maximalwert des Arrays minus n (oder einem Vielfachen davon) ist. Wenn ja, wird n zurückgegeben, wenn nein, wird -1 zurückgegeben (was anzeigt, dass dies nicht möglich ist).
Nehmen wir ein Beispiel, um das Problem zu verstehen
#include<bits/stdc++.h> using namespace std; int findOperationCount(int arr[],int n){ int j = 0, operations = 0; int maxVal = arr[0]; int minVal = arr[0]; int maxValInd = 0; for (int i = 1; i < n; i++){ if(arr[i] > maxVal){ maxVal = arr[i]; maxValInd = i; } if(arr[i] < minVal){ minVal = arr[i]; } } for (int i =0;i<n;i++){ if (arr[i] != maxVal && arr[i] <= minVal && arr[i] != 0){ arr[j] += 1; arr[maxValInd] -= 1; maxVal -= 1; operations += 1; j += 1; } else if (arr[i] != 0){ j += 1; } } for (int i = 0; i < n; i++){ if (arr[i] != maxVal){ operations = -1; break; } } return operations; } int main(){ int arr[] = {4, 4, 8, 4}; int n = sizeof(arr)/sizeof(arr[0]); cout<<"The number of operations required to make all array elements Equal is "<<findOperationCount(arr, n); return 0; }
The number of operations required to make all array elements Equal is 3
Das obige ist der detaillierte Inhalt vonErmitteln Sie in C++ die Anzahl der Operationen, die erforderlich sind, um alle Elemente eines Arrays gleich zu machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!