Inhaltsverzeichnis
Erster Ansatz
Beispiel
Ausgabe
Oben Codebeschreibung
Zweite Methode
Erklärung des obigen Codes
Schleifen verstehen
Heim Backend-Entwicklung C++ Ermitteln Sie beim Programmieren in C++ die Anzahl der Subarrays mit m ungeraden Zahlen

Ermitteln Sie beim Programmieren in C++ die Anzahl der Subarrays mit m ungeraden Zahlen

Sep 11, 2023 am 08:09 AM
c编程 ungerade Anzahl von Subarrays

Ermitteln Sie beim Programmieren in C++ die Anzahl der Subarrays mit m ungeraden Zahlen

Wenn Sie jemals C++ verwendet haben, müssen Sie wissen, was Subarrays sind und wie nützlich sie sind. Wie wir alle wissen, können wir in C++ mehrere mathematische Probleme leicht lösen. In diesem Artikel erklären wir daher, wie Sie mithilfe dieser Subarrays in C++ die vollständigen Informationen von M ungeraden Zahlen finden.

In diesem Problem müssen wir eine Anzahl von Subarrays und ganzen Zahlen m finden, die aus dem gegebenen Array bestehen, wobei jedes Subarray genau m ungerade Zahlen enthält. Hier ist ein einfaches Beispiel für diesen Ansatz –

Input : array = { 6,3,5,8,9 }, m = 2
Output : 5
Explanation : Subarrays with exactly 2 odd numbers are
{ 3,5 }, { 6,3,5 }, { 3,5,8 }, { 5,8,9 }, { 6,3,5,8 }, { 3,5,8,9 }

Input : array = { 1,6,3,2,5,4 }, m = 2
Output : 6
Explanation : Subarrays with exactly 2 odd numbers are
{ 1,6,3 }, { 3,2,5 }, { 1,6,3,2 }, { 6,3,2,5 }, { 3,2,5,4 }, { 6,3,2,5,4 }
Nach dem Login kopieren

Erster Ansatz

Bei diesem Ansatz werden alle möglichen Unterarrays aus dem gegebenen Array generiert und jedes Unterarray wird überprüft, ob es genau m ungerade Zahlen hat. Dies ist eine einfache Generierungs- und Suchmethode mit einer Zeitkomplexität von O(n2).

Beispiel

#include <bits/stdc++.h>
using namespace std;
int main (){
    int a[] = { 1, 6, 3, 2, 5, 4 };
    int n = 6, m = 2, count = 0; // n is size of array, m numbers to be find in subarrays,
                              // count is number of subarray with m odd numbers
    for (int i = 0; i < n; i++){ // outer loop to process each element.
        int odd = 0;
        for (int j = i; j < n; j++) {// inner loop to find subarray with m number
            if (a[j] % 2)
                odd++;
            if (odd == m) // if odd numbers become equals to m.
                count++;
        }
    }
    cout << "Number of subarrays with n numbers are: " << count;
    return 0;
}
Nach dem Login kopieren

Ausgabe

Number of subarrays with n numbers are: 6
Nach dem Login kopieren
Nach dem Login kopieren

Oben Codebeschreibung

In diesem Code verwenden wir verschachtelte Schleifen, um m ungerade Unterarrays zu finden. Die äußere Schleife wird verwendet, um „i“ zu erhöhen, das zur Verarbeitung jedes einzelnen verwendet wird Element im Array.

Die innere Schleife wird verwendet, um das Subarray zu finden und die Elemente zu verarbeiten, bis der ungerade Zähler m erreicht, den Ergebniszählerzähler für jedes gefundene Subarray zu erhöhen und schließlich das im Zähler gespeicherte Ergebnis auszugeben.

Zweite Methode

Eine andere Methode ist zu Erstellen Sie ein Array, um die Anzahl „i“ ungerader Präfixe zu speichern, verarbeiten Sie jedes Element und erhöhen Sie die Anzahl ungerader Zahlen jedes Mal, wenn eine ungerade Zahl gefunden wird.

Wenn die Anzahl der ungeraden Zahlen m überschreitet oder gleich ist, fügen Sie die Zahl an der Position (ungerade - m) im Präfix-Array hinzu.

Wenn die ungerade Zahl größer oder gleich m wird, zählen wir die Anzahl der gebildeten Unterarrays, bis der Index und die Zahl „ungerade – m“ zur Zählvariablen hinzugefügt werden. Nachdem jedes Element verarbeitet wurde, wird das Ergebnis in der Zählvariablen gespeichert.

Beispiel

#include <bits/stdc++.h>
using namespace std;
int main (){
    int array[ ] = { 1, 6, 3, 2, 5, 4 };
    int n = 6, m = 2, count = 0, odd = 0, i;
    int prefix_array[n + 1] = { 0 };
    // outer loop to process every element of array
    for (i = 0; i < n; i++){
        prefix_array[odd] = prefix_array[odd] + 1;    // implementing value at odd index in prefix_array[ ]
        // if array element is odd then increment odd variable
        if (array[i] % 2 == 0)
            odd++;
        // if Number of odd element becomes equal or greater than m
        //  then find the number of possible subarrays that can be formed till the index.
        if (odd >= m)
            count += prefix_array[odd - m];
    }
    cout << "Number of subarrays with n numbers are: " << count;
    return 0;
}
Nach dem Login kopieren

Ausgabe

Number of subarrays with n numbers are: 6
Nach dem Login kopieren
Nach dem Login kopieren

Erklärung des obigen Codes

Arrays und Variablen mit Startwerten initialisieren -

int array[ 6 ] = { 1, 6, 3, 2, 5, 4 };
int n = 6, m = 2, count = 0, odd = 0, i;
int prefix_array[n + 1] = { 0 };
Nach dem Login kopieren

Hier initialisieren wir Variable n mit der Größe des Arrays und Variable m mit der Anzahl der ungeraden Zahlen Wir suchen, initialisieren count mit 0, um die Anzahl möglicher Unterarrays beizubehalten, initialisieren ungerade Zahlen mit 0, initialisieren Variable n mit prefix_array der Größe n + 1 0.

Schleifen verstehen

for (i = 0; i < n; i++){
   prefix_array[odd] = prefix_array[odd] + 1;
   if (array[i] % 2 == 0)
      odd++;
      if (odd >= m)
         count += prefix_array[odd - m];
}
Nach dem Login kopieren

In dieser Schleife befinden wir uns in prefix_array [ ] implementiert den Wert an einem ungeraden Index und erhöht dann die ungerade Variable, wenn eine ungerade Zahl gefunden wird. Wir stellen fest, dass, wenn ungerade Variablen gleich oder größer als m sind, die Anzahl der Unterarrays bis zum Index gebildet werden kann.

Schließlich drucken wir die m ungeraden Subarray-Nummern aus, die in der Zählvariablen gespeichert sind, und erhalten die Ausgabe. Fazit Array gefunden Die Anzahl des Arrays. Die zeitliche Komplexität dieses Codes beträgt O(n2).

Effiziente Methode: Durchlaufen Sie jedes Element des Arrays, erstellen Sie ein Präfix-Array und verwenden Sie dann die Hilfe des Präfix-Arrays. Die zeitliche Komplexität dieses Codes beträgt O(n).

  • Ich hoffe, dieser Artikel hilft Ihnen, das Problem und die Lösung zu verstehen.

Das obige ist der detaillierte Inhalt vonErmitteln Sie beim Programmieren in C++ die Anzahl der Subarrays mit m ungeraden Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Verwenden Sie C++, um Code zu schreiben, um die N-te nichtquadratische Zahl zu finden Verwenden Sie C++, um Code zu schreiben, um die N-te nichtquadratische Zahl zu finden Aug 30, 2023 pm 10:41 PM

Wir alle kennen Zahlen, die nicht das Quadrat einer Zahl sind, wie zum Beispiel 2, 3, 5, 7, 8 usw. Es gibt N nichtquadratische Zahlen und es ist unmöglich, jede Zahl zu kennen. In diesem Artikel erklären wir alles über quadratlose oder nichtquadratische Zahlen und Möglichkeiten, die N-te nichtquadratische Zahl in C++ zu finden. N-te nichtquadratische Zahl Wenn eine Zahl das Quadrat einer ganzen Zahl ist, wird die Zahl als perfektes Quadrat bezeichnet. Einige Beispiele für perfekte Quadratzahlen sind -1isquadratvon14isquadratvon29isquadratvon316isquadratvon425isquadratvon5. Wenn eine Zahl nicht das Quadrat einer ganzen Zahl ist, wird die Zahl als nichtquadratisch bezeichnet. Die ersten 15 nichtquadratischen Zahlen sind beispielsweise -2,3,5,6,

Ermitteln Sie mit C++ die Anzahl eindeutiger Paare in einem Array Ermitteln Sie mit C++ die Anzahl eindeutiger Paare in einem Array Sep 07, 2023 am 11:53 AM

Wir benötigen entsprechende Kenntnisse, um mehrere eindeutige Paare in der Array-Syntax von C++ zu erstellen. Während wir die Anzahl der eindeutigen Paare ermitteln, zählen wir alle eindeutigen Paare im angegebenen Array, d. h. alle möglichen Paare können gebildet werden, wobei jedes Paar eindeutig sein sollte. Zum Beispiel -Input:array[]={5,5,9}Output:4Erläuterung:Die Anzahl dereinzigartigen Paaresind(5,5),(5,9),(9,5)und(9,9).Input:array[] = {5,4,3,2,2}Ausgabe: 16 Möglichkeiten, eine Lösung zu finden Es gibt zwei Möglichkeiten, dieses Problem zu lösen: −

Ermitteln Sie in der C-Programmierung die Fläche eines Kreises Ermitteln Sie in der C-Programmierung die Fläche eines Kreises Aug 25, 2023 pm 10:57 PM

Ein Kreis ist eine geschlossene Figur. Alle Punkte auf einem Kreis haben den gleichen Abstand von einem Punkt innerhalb des Kreises. Der Mittelpunkt wird Kreismittelpunkt genannt. Der Abstand von einem Punkt zum Mittelpunkt eines Kreises wird Radius genannt. Die Fläche ist eine quantitative Darstellung der Dimensionsspanne einer geschlossenen Figur. Die Fläche eines Kreises ist die Fläche, die innerhalb der Abmessungen des Kreises eingeschlossen ist. Die Formel zur Berechnung der Fläche eines Kreises lautet Fläche=π*r*r. Um die Fläche zu berechnen, geben wir den Radius des Kreises als Eingabe ein. Wir verwenden die Formel zur Berechnung der Fläche, Algorithmus SCHRITT 1: Übernehmen Sie den Radius als Eingabe vom Benutzer mit stdin. SCHRITT 2 : Berechnen Sie die Fläche des Kreises mit Fläche=(

Inversionsalgorithmus für die Rechtsdrehung eines Arrays, geschrieben in C++ Inversionsalgorithmus für die Rechtsdrehung eines Arrays, geschrieben in C++ Sep 08, 2023 pm 08:17 PM

In diesem Artikel lernen wir den Umkehralgorithmus kennen, um das gegebene Array um k Elemente nach rechts zu drehen, zum Beispiel −Input:arr[]={4,6,2,6,43,7,3,7}, k= 4Ausgabe:{43,7,3,7,4,6,2,6}Erklärung:Das Drehen jedes Elements des Arrays um 4 Elemente nach rechts ergibt {43,7,3,7,4,6,2,6}.Eingabe:arr[]= {8 ,5,8,2,1,4,9,3},k=3Ausgabe:{4,9,3,8,5,8,2,1} Finden Sie die Lösung

Schreiben Sie mit C++ einen Code, um die Anzahl der Subarrays mit denselben Mindest- und Höchstwerten zu ermitteln Schreiben Sie mit C++ einen Code, um die Anzahl der Subarrays mit denselben Mindest- und Höchstwerten zu ermitteln Aug 25, 2023 pm 11:33 PM

In diesem Artikel werden wir C++ verwenden, um das Problem zu lösen, die Anzahl der Subarrays zu ermitteln, deren Maximal- und Minimalwert gleich sind. Das Folgende ist ein Beispiel für das Problem: −Input:array={2,3,6,6,2,4,4,4}Output:12Explanation:{2},{3},{6},{6}, {2 },{4},{4},{4},{6,6},{4,4},{4,4}und {4,4,4}sind die Teilarrays, die mit dem gleichen maximalen und minimalen Element gebildet werden können. Eingabe: array={3, 3, 1,5,

Kehren Sie die Gruppierung doppelt verknüpfter Listen nach gegebener Größe mit C++ um Kehren Sie die Gruppierung doppelt verknüpfter Listen nach gegebener Größe mit C++ um Sep 04, 2023 am 09:49 AM

In diesem Problem erhalten wir einen Zeiger auf den Kopf der verknüpften Liste und eine ganze Zahl k. In einer Gruppe der Größe k müssen wir die verknüpfte Liste umkehren. Zum Beispiel -Input:1<->2<->3<->4<->5(doublylinkedlist),k=3Output:3<->2<->1<->5<->4 sucht nach Lösungen Methode In diesem Problem werden wir einen rekursiven Algorithmus formulieren, um dieses Problem zu lösen. Bei dieser Methode verwenden wir die Rekursion und lösen das Problem mithilfe der Rekursion. Beispiel#include<iostream&

Umkehralgorithmus für die Array-Rotation, geschrieben in C++ Umkehralgorithmus für die Array-Rotation, geschrieben in C++ Aug 28, 2023 pm 11:13 PM

In dem gegebenen Problem haben wir ein Array und müssen das Array mit einem Inversionsalgorithmus wie −Input:arr[]=[1,2,3,4,5,6,7], d=2Output um d Elemente drehen: arr[]=[3,4,5,6,7,1,2]Erklärung: Wie Sie sehen können, müssen wir dieses Array um d=2 drehen, aber unsere Hauptaufgabe besteht darin, dies mithilfe einer Umkehrtechnik zu erreichen, und sind zu dem Schluss gekommen: Zuerst kehren wir um

Ermitteln Sie in C++ die Anzahl der reflexiven Beziehungen auf einer Menge Ermitteln Sie in C++ die Anzahl der reflexiven Beziehungen auf einer Menge Aug 26, 2023 pm 08:17 PM

In diesem Artikel erklären wir Möglichkeiten, reflexive Beziehungen auf einer Menge zu finden. In diesem Problem erhalten wir eine Zahl n und eine Menge von n natürlichen Zahlen und müssen die Anzahl der reflexiven Beziehungen bestimmen. Reflexive Relation – Eine Relation R heißt eine reflexive Relation auf der Menge A, wenn für jedes „a“ in der Menge A (a, a) zur Relation R gehört. Zum Beispiel -Input:x=1Output:1Explanation:set={1},reflexiverelationsonA*A:{{1}}Input:x=2Output:4Explanation:set={1,2},reflexiverelationsonA*

See all articles