Heim >Backend-Entwicklung >C++ >C++-Programm: Berechnen Sie die Anzahl der Operationen, die erforderlich sind, um ein Element mit einem Index zu platzieren, der kleiner als ein Wert ist
Angenommen, wir haben ein Array A mit n Elementen. Wir können diese Operationen mehrmals ausführen –
wählen Sie eine beliebige positive ganze Zahl k aus
wählen Sie eine beliebige Position aus und fügen Sie k an dieser Position ein
Auf diese Weise ändert sich die Sequenz und wir setzen diese Sequenz in der nächsten Operation fort.
Wir müssen die Mindestanzahl an Operanden finden, die erforderlich ist, um die Bedingung zu erfüllen: A[i]
Wenn die Eingabe also beispielsweise A = [1, 2, 5, 7, 4] lautet, ist die Ausgabe 3, weil wir so etwas tun können wie: [1,2,5,7,4] bis [1, 2 ,3,5,7,4] bis [1,2,3,4,5,7,4] bis [1,2,3,4,5,3,7,4].
Um dieses Problem zu lösen, folgen wir den folgenden Schritten:
maxj := 0 n := size of A for initialize i := 0, when i < n, update (increase i by 1), do: maxj := maximum of maxj and (A[i] - i - 1) return maxj
Sehen wir uns zum besseren Verständnis die folgende Implementierung an: -
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A) { int maxj = 0; int n = A.size(); for (int i = 0; i < n; i++) { maxj = max(maxj, A[i] - i - 1); } return maxj; } int main() { vector<int> A = { 1, 2, 5, 7, 4 }; cout << solve(A) << endl; }
{ 1, 2, 5, 7, 4 }
3
Das obige ist der detaillierte Inhalt vonC++-Programm: Berechnen Sie die Anzahl der Operationen, die erforderlich sind, um ein Element mit einem Index zu platzieren, der kleiner als ein Wert ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!