Heim > Backend-Entwicklung > C++ > Hauptteil

C++-Programm: Array finden, nachdem der Maximalwert entfernt wurde C++-Programm zum Finden eines Arrays nach Entfernen des Maximalwerts

WBOY
Freigeben: 2023-09-04 20:01:02
nach vorne
591 Leute haben es durchsucht

C++程序:在删除最大值后找到数组

C++程序用于在删除最大值后找到数组

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.

Fragekategorie

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.

Schritte

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]
Nach dem Login kopieren

Beispiel

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);
}
Nach dem Login kopieren

Eingabe

{ 5, -1, 4, 2, 0 }, 19
Nach dem Login kopieren

Ausgabe

0, 6, 1, 3, 5,
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage