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

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

WBOY
WBOYnach vorne
2023-09-04 20:01:02538Durchsuche

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]

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);
}

Eingabe

{ 5, -1, 4, 2, 0 }, 19

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen