Heim > Artikel > Backend-Entwicklung > Die Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann
In C++ haben wir eine Vektor-Header-Datei, die die Größe des Arrays zur Laufzeit ändern kann. In diesem Artikel lernen wir das Konzept kennen, wie oft ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann.
Nehmen wir ein Beispiel, um eine Array-Partition mit einer gleichen Summe zu zeigen.
Das gegebene Array ist {1,2,3,4,2}, wir teilen das Array in zwei Teile −
{1,2,3}- Die Gesamtsumme jedes Indexes eines Arrays beträgt 6,
{4,2} – Die Summe jedes Indexes des Arrays beträgt 6.
So kann das 2-fache der Größe eines bestimmten Arrays in Unterarrays mit gleichen Summen aufgeteilt werden.
Wir starten das Programm mit den Header-Dateien ‘iostream‘ und ‘vector‘.
Jetzt starten wir das Programm, indem wir eine Klasse namens „isPartition_arr“ erstellen.
Deklarieren Sie im öffentlichen Abschnitt einen Konstruktor mit dem Namen ‘isPartition_arr‘, der num als Parameter akzeptiert, um den Wert des Array-Elements aufzulösen.
Wir definieren eine Funktion namens ‘cnt_Partition‘ vom Ganzzahltyp, um die Gesamtzahl der Partitionierungen eines Arrays zu berechnen.
Wir initialisieren die Variable 'sum' auf '0', die später zum Summieren des Arrays verwendet wird, und speichern '0' in der Variablen 'count', die zur Nachverfolgung verwendet wird Die Array-Elemente erhöhen die Anzahl. Dann deklarieren Sie eine for-Schleife, um jedes Element des ‘arr’-Vektors zu durchlaufen.
Wir initialisieren die Variable ‘current_sum‘ auf ‘0‘ und iterieren über jedes Element mithilfe der for-Schleife
Nach Abschluss der for-Schleife beginnen wir mit der Verwendung einer while-Schleife, um jedes Element zu durchlaufen.
Wenn 'current_sum' gleich 'sum/2' ist, wird der Zähler um '1' erhöht und 'current_sum' auf '0' zurückgesetzt. Als nächstes wird durch die Rückgabe von ‘cnt’ gezählt, wie oft das Array gleichmäßig geteilt werden kann.
Wir beginnen mit der Hauptfunktion und erstellen einen ‘num‘-Vektor vom Typ Integer, um den Wert des Arrays zu speichern.
Dann übergeben wir den ‘num‘-Wert, indem wir das Objekt der Klasse erstellen. Als nächstes rufen wir die Funktion ‘cnt_partition‘ auf, indem wir das Objekt nehmen und es in der Variablen ‚c‘ speichern Schließlich drucken wir die Ausgabeanweisung mit Hilfe der Variablen
‚c‘als „Anzahl der Male, in denen ein Array in zwei Unterarrays mit gleicher Summe aufgeteilt werden kann“ aus Die chinesische Übersetzung von Beispiel
lautet:#include <iostream> #include <vector> using namespace std; class isPartition_arr { public: vector<int> arr; isPartition_arr(vector<int>& num) { arr = num; } int cnt_Partition() { int sum = 0, count = 0; for (int i = 0; i < arr.size(); i++) { sum += arr[i]; } int current_sum = 0, j=0; while( j < arr.size() ) { current_sum += arr[j]; if (current_sum == sum / 2) { current_sum = 0; count++; } j++; } return count; } }; int main() { vector<int> num = {1, 2, 3, 4, 5, 5}; isPartition_arr A(num); int c = A.cnt_Partition(); cout <<"Number of times an array can be partitioned into\t"<< c <<"\t two subarrays with equal sum " << endl; return 0; }
Number of times an array can be partitioned into 2 two subarrays with equal sum
Fazit
Das obige ist der detaillierte Inhalt vonDie Häufigkeit, mit der ein Array wiederholt in Unterarrays mit gleichen Summen aufgeteilt werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!