Angenommen, wir haben ein Array A mit n Elementen und einem weiteren Wert k. Wir wollen k Operationen durchführen. Eine Operation hat die Form:
Angenommen, d ist der Maximalwert des Arrays
Ersetzen Sie für jeden Index i von 1 bis n A[i] durch d - A[i]
We The Die endgültige Reihenfolge muss gefunden werden.
Ein Array in einer Datenstruktur ist eine endliche Sammlung von Elementen eines bestimmten Typs. Arrays werden verwendet als Speichern Sie Elemente desselben Typs an aufeinanderfolgenden Speicherorten. Ein Array wird zugewiesen Ein spezifischer Name, auf den in verschiedenen Programmiersprachen verwiesen wird Um auf ein Element eines Arrays zuzugreifen, ist ein Index erforderlich. Wir verwenden den Begriff „name[i]“, um Greifen Sie auf ein bestimmtes Element an Position „i“ im Array „Name“ zu. verschiedene Datenstrukturen Beispielsweise können Stacks, Warteschlangen, Heaps und Prioritätswarteschlangen mithilfe von Arrays implementiert werden. Funktioniert weiter Arrays umfassen Einfüge-, Lösch-, Aktualisierungs-, Durchlauf-, Such- und Sortieroperationen. Zugang Die folgenden Links dienen der weiteren Lektüre.
https://www.tutorialspoint.com/data_structures_algorithms/array_data_structure.htm
Wenn also die Eingabe für unser Problem A = [5, -1, 4, 2, 0] ist, dann ist die Ausgabe will be ist [0, 6, 1, 3, 5], weil d 5 ist.
Um dieses Problem zu lösen, folgen wir den folgenden Schritten:
n := size of A m := -inf t := -inf for initialize i := 0, when i < n, update (increase i by 1), do: m := maximum of m and A[i] for initialize i := 0, when i < n, update (increase i by 1), do: A[i] := m - A[i] t := maximum of t and A[i] if k mod 2 is same as 1, then: for initialize i := 0, when i < n, update (increase i by 1), do: print A[i] Otherwise for initialize i := 0, when i < n, update (increase i by 1), do: A[i] := t - A[i] print A[i]
Sehen wir uns zum besseren Verständnis die folgende Implementierung an: -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A, int k){ int n = A.size(); int m = -999; int t = -999; for (int i = 0; i < n; i++) m = max(m, A[i]); for (int i = 0; i < n; i++) A[i] = m - A[i], t = max(t, A[i]); if (k % 2 == 1) for (int i = 0; i < n; i++) cout << A[i] << ", "; else for (int i = 0; i < n; i++) A[i] = t - A[i], cout << A[i] << ", "; } int main(){ vector<int> A = { 5, -1, 4, 2, 0 }; int k = 19; solve(A, k); }
{ 5, -1, 4, 2, 0 }, 19
0, 6, 1, 3, 5,
Das obige ist der detaillierte Inhalt vonC++-Programm: Array finden, nachdem der Maximalwert entfernt wurde C++-Programm zum Finden eines Arrays nach Entfernen des Maximalwerts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!