Inhaltsverzeichnis
Brute-Force-Methode
Beispiel
Ausgabe
Die obige Codebeschreibung
Effiziente Methode
Erklärung des obigen Codes
Fazit
Heim Backend-Entwicklung C++ Schreiben Sie mit C++ einen Code, um die Anzahl der Unterarrays mit ungeraden Summen zu ermitteln

Schreiben Sie mit C++ einen Code, um die Anzahl der Unterarrays mit ungeraden Summen zu ermitteln

Sep 21, 2023 am 08:45 AM
数量 子数组 Ungerade Summen

Schreiben Sie mit C++ einen Code, um die Anzahl der Unterarrays mit ungeraden Summen zu ermitteln

Ein Subarray ist ein zusammenhängender Teil eines Arrays. Betrachten wir beispielsweise ein Array [5, 6, 7, 8], dann gibt es zehn nicht leere Unterarrays, wie zum Beispiel (5), (6), (7), (8), (5, 6). ), (6, 7), (7,8), (5,6,7), (6,7,8) und (5,6,7,8).

In diesem Leitfaden erklären wir alle möglichen Informationen, um die Anzahl der Subarrays mit ungeraden Summen in C++ zu ermitteln. Um die Anzahl der Unterarrays mit ungeraden Summen zu ermitteln, können wir verschiedene Methoden verwenden. Hier ist ein einfaches Beispiel:

Input : array = {9,8,7,6,5}
Output : 9

Explanation :
Sum of subarray -
{9} = 9
{7} = 7
{5} = 5
{9,8} = 17
{8,7} = 15
{7,6} = 13
{6,5} = 11
{8,7,6} = 21
{9,8,7,6,5} = 35
Nach dem Login kopieren

Brute-Force-Methode

Mit dieser Methode können wir einfach überprüfen, ob die Summe der Elemente in allen Unterarrays gerade ist oder ungerade, wenn es gerade ist, lehnen wir das Unterarray ab und berechnen das Unterarray, dessen Summe ungerade ist. Dies ist keine effiziente Methode, da die Komplexität dieses Codes O(n2) ist.

Beispiel

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n=5, temp = 0;
    int a[n-1] = { 9,8,7,6,5 } ; // declaring our array.
    int cnt = 0; // counter variable.
    for(int i = 0; i < n; i++){
        temp = 0; // refreshing our temp sum.
        for(int j = i; j < n; j++){ // this loop will make our subarrays starting from i till n-1.
            temp = temp + a[j];
            if( temp % 2 == 1 )
                cnt++;
        }
    }
    cout << "Number of subarrays with odd sum : " << cnt << "\n";
    return 0;
}
Nach dem Login kopieren

Ausgabe

Number of subarrays with odd sum : 9
Nach dem Login kopieren
Nach dem Login kopieren

Die obige Codebeschreibung

In diesem Code wird eine verschachtelte Schleife verwendet, wobei die äußere Schleife zum Erhöhen des Werts von I verwendet wird und I von Anfang an auf jeden Wert im Array zeigt ; die innere Schleife wird verwendet, um ein Subarray mit ungerader Summe beginnend an Position " i " zu finden.

Effiziente Methode

Bei dieser Methode verarbeiten wir jedes Element ab der 0. Position im Array. Wenn das aktuelle Element ungerade ist, erhöhen Sie einen ungeraden Zähler und einen geraden Zähler für jede gerade Zahl. Wenn wir eine ungerade Zahl finden, werden die Werte von Even und Odd vertauscht, da das Hinzufügen einer ungeraden Zahl zum Subarray seine Parität ändert, und schließlich wird dem Ergebnis eine Zählung hinzugefügt. Die Komplexität dieses Codes beträgt O(n), da wir jedes Element verarbeiten.

Beispiel

 
#include <bits/stdc++.h>
using namespace std;
int main(){
    int odd = 0, even = 0,  result = 0,n=5,i,temp;
    int arr[ n-1 ] = { 9,8,7,6,5}; // initialising the array
     // for loop for processing every element of array
    for ( i = 0 ; i < n ; i ++ )  {
        if ( arr[ i ] % 2 == 0 ) {
            even++;
        } else {
          // swapping even odd values
            temp = even;
            even = odd;
            odd = temp + 1;
        }
        result += odd;
    }
    cout << "Number of subarrays with odd sum : " << result;
}
Nach dem Login kopieren

Ausgabe

Number of subarrays with odd sum : 9
Nach dem Login kopieren
Nach dem Login kopieren

Erklärung des obigen Codes

In diesem Code prüfen wir die gerade/ungerade Zahl jedes Elements und erhöhen den geraden Zähler für gerade und den ungeraden Zähler für ungerade. Wenn außerdem eine ungerade Zahl gefunden wird, vertauschen wir die Paritätszählerwerte; andernfalls ändert sich die Parität des Subarrays. Fügen Sie dann nach jeder Iteration den Wert des ungeraden Zählers zur Ergebnisvariablen hinzu.

Fazit

In diesem Artikel haben wir erklärt, wie man die Zahlenzwangsmethode von Brute für Subarrays mit einer ungeraden Summe findet, jedes Subarray mit einer ungeraden Summe generiert und die Anzahl erhöht. Die zeitliche Komplexität dieses Codes beträgt O(n2). Eine effiziente Möglichkeit, dies zu tun, besteht darin, jedes Element des Arrays zu durchlaufen und die ungerade/gerade Zählervariable mit jeder gefundenen ungeraden/geraden Zahl zu erhöhen und die Zähler auszutauschen, wenn eine ungerade Zahl gefunden wird. Die zeitliche Komplexität dieses Codes beträgt O(; N). Ich hoffe, dass Ihnen dieser Artikel dabei geholfen hat, das Problem und die Lösung zu verstehen.

Das obige ist der detaillierte Inhalt vonSchreiben Sie mit C++ einen Code, um die Anzahl der Unterarrays mit ungeraden Summen zu ermitteln. 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)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate 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)

OpenOOD-Update v1.5: umfassende und genaue Bibliothek und Testplattform zur Erkennung von Out-of-Distribution-Codes, die Online-Rankings und One-Click-Tests unterstützt OpenOOD-Update v1.5: umfassende und genaue Bibliothek und Testplattform zur Erkennung von Out-of-Distribution-Codes, die Online-Rankings und One-Click-Tests unterstützt Jul 03, 2023 pm 04:41 PM

Die Out-of-Distribution (OOD)-Erkennung ist für den zuverlässigen Betrieb offener intelligenter Systeme von entscheidender Bedeutung, aktuelle objektorientierte Erkennungsmethoden leiden jedoch unter „Bewertungsinkonsistenzen“ (Bewertungsinkonsistenzen). Frühere Arbeiten OpenOODv1 vereinheitlichen die Auswertung der OOD-Erkennung, weisen jedoch immer noch Einschränkungen hinsichtlich Skalierbarkeit und Benutzerfreundlichkeit auf. Kürzlich hat das Entwicklungsteam erneut OpenOODv1.5 vorgeschlagen. Im Vergleich zur Vorgängerversion wurde die Bewertung der neuen OOD-Erkennungsmethode erheblich verbessert, um Genauigkeit, Standardisierung und Benutzerfreundlichkeit zu gewährleisten. Bildpapier: https://arxiv.org/abs/2306.09301OpenOODCodebase:htt

Erweitern Sie Ihr Wissen! Maschinelles Lernen mit logischen Regeln Erweitern Sie Ihr Wissen! Maschinelles Lernen mit logischen Regeln Apr 01, 2023 pm 10:07 PM

Auf der Precision-Recall-Kurve werden dieselben Punkte mit unterschiedlichen Achsen aufgetragen. Warnung: Der erste rote Punkt links (0 % Rückruf, 100 % Präzision) entspricht 0 Regeln. Der zweite Punkt links ist die erste Regel und so weiter. Skope-rules verwendet ein Baummodell, um Regelkandidaten zu generieren. Erstellen Sie zunächst einige Entscheidungsbäume und betrachten Sie die Pfade vom Wurzelknoten zu internen Knoten oder Blattknoten als Regelkandidaten. Diese Kandidatenregeln werden dann nach einigen vordefinierten Kriterien wie Präzision und Rückruf gefiltert. Nur diejenigen, deren Präzision und Erinnerung über ihren Schwellenwerten liegen, werden beibehalten. Abschließend wird eine Ähnlichkeitsfilterung angewendet, um Regeln mit ausreichender Diversität auszuwählen. Im Allgemeinen werden Skope-Regeln angewendet, um die Ursache jedes einzelnen Problems herauszufinden

Wie finde ich die Anzahl der von der Laufzeit in Java bereitgestellten Parameter? Wie finde ich die Anzahl der von der Laufzeit in Java bereitgestellten Parameter? Sep 23, 2023 pm 01:13 PM

In Java besteht eine Möglichkeit, Parameter zur Laufzeit zu übergeben, darin, die Befehlszeile oder das Terminal zu verwenden. Beim Abrufen dieser Werte für Befehlszeilenparameter müssen wir möglicherweise die Anzahl der vom Benutzer zur Laufzeit bereitgestellten Parameter ermitteln, was mithilfe des Längenattributs erreicht werden kann. Ziel dieses Artikels ist es, den Prozess des Übergebens und Abrufens einer vom Benutzer bereitgestellten Anzahl von Parametern mithilfe eines Beispielprogramms zu erläutern. Ermitteln Sie die Anzahl der vom Benutzer zur Laufzeit bereitgestellten Argumente. Bevor wir die Anzahl der Befehlszeilenargumente ermitteln, besteht unser erster Schritt darin, ein Programm zu erstellen, das dem Benutzer die Übergabe von Argumenten zur Laufzeit ermöglicht. String[]-Parameter Beim Schreiben von Java-Programmen stoßen wir häufig auf die Methode main(). Wenn die JVM diese Methode aufruft, beginnt die Ausführung der Java-Anwendung. Es wird mit einem Argument namens String[]args verwendet

Linux-Befehl: So überprüfen Sie die Anzahl der Telnet-Prozesse Linux-Befehl: So überprüfen Sie die Anzahl der Telnet-Prozesse Mar 01, 2024 am 11:39 AM

Linux-Befehle sind eines der unverzichtbaren Werkzeuge in der täglichen Arbeit von Systemadministratoren. Sie können uns bei der Erledigung verschiedener Systemverwaltungsaufgaben helfen. Bei Betriebs- und Wartungsarbeiten ist es manchmal notwendig, die Nummer eines bestimmten Prozesses im System zu überprüfen, um Probleme zu erkennen und rechtzeitig Anpassungen vorzunehmen. In diesem Artikel wird erläutert, wie Sie mithilfe von Linux-Befehlen die Anzahl der Telnet-Prozesse überprüfen. Lassen Sie uns gemeinsam lernen. In Linux-Systemen können wir den Befehl ps in Kombination mit dem Befehl grep verwenden, um die Anzahl der Telnet-Prozesse anzuzeigen. Zuerst müssen wir ein Terminal öffnen,

Ermitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben Ermitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben Aug 29, 2023 am 11:21 AM

Wir haben zwei Arrays von Ganzzahlen, eines mit den berechneten Elementen und das andere mit den Teilungspunkten, die zum Teilen des Arrays zur Generierung von Teilmengen erforderlich sind. Wir müssen die Summe jeder Teilmenge in jeder Teilung berechnen und die maximale Teilmenge zurückgeben. Gehen wir das Beispiel durch Verstehen: - Eingabe −intarr[]=intarr[]={9,4,5,6,7}intsplitPoints[]={0,2,3,1} Ausgabe−die maximale Subarray-Summe nach jeder Teilung [ 22, 13,9,9] Erläuterung − Hier zerlegen wir das Array nach seinen Teilungspunkten und erhalten die maximale Teilmenge nach jeder Teilung und nach der ersten Teilung → {9} und {4,5,6,7 }>>Die maximale Summe der Subarrays beträgt nach der zweiten Aufteilung -22→{9},{4

C++-Programm zur Berechnung der Summe aller ungeraden Zahlen zwischen 1 und N C++-Programm zur Berechnung der Summe aller ungeraden Zahlen zwischen 1 und N Sep 06, 2023 pm 08:05 PM

Das Ermitteln der Summe einer Reihe ist eine der einfachsten Übungsaufgaben, wenn wir Programmieren und Logikkonstruktion erlernen. In der Mathematik gibt es Möglichkeiten, die Summe der in verschiedenen Reihen vorhandenen Reihen zu ermitteln. Beim Programmieren generieren wir sie einzeln durch die Implementierung von Logik und addieren sie wiederholt, um die Summe zu erhalten, oder tun bei Bedarf andere Dinge. In diesem Artikel stellen wir die Technik vor, mit C++ die Summe aller ungeraden Zahlen bis N zu ermitteln. Es gibt zwei Möglichkeiten, diese Summe zu erhalten, allerdings mit einer Wendung. Schauen wir uns diese Methoden einzeln an. Der Algorithmus ist auf die Zahl N begrenzt. Initialisieren Sie die Summe auf 0. i reicht von 1 bis N. Wenn i eine ungerade Zahl ist, dann. Summe:=Summe+i. Wenn es endet. Summe anzeigen. Beispiel#include<iostre

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,

Ermitteln Sie die Anzahl der Möglichkeiten, einen N-stufigen Baum mit C++ zu durchlaufen Ermitteln Sie die Anzahl der Möglichkeiten, einen N-stufigen Baum mit C++ zu durchlaufen Sep 04, 2023 pm 05:01 PM

Bei einem gegebenen N-ary-Baum besteht unsere Aufgabe darin, die Gesamtzahl der Möglichkeiten zum Durchqueren des Baums zu ermitteln, z. B. − Für den obigen Baum beträgt unsere Ausgabe 192. Für dieses Problem benötigen wir einige Kenntnisse der Kombinatorik. Bei diesem Problem müssen wir nun nur noch alle möglichen Kombinationen jedes Pfades prüfen und schon erhalten wir die Antwort. Methode zum Finden der Lösung Bei dieser Methode müssen wir lediglich einen Hierarchiedurchlauf durchführen, überprüfen, wie viele Kinder jeder Knoten hat, und ihn dann faktoriell mit der Antwort multiplizieren. Beispiel-C++-Code der oben genannten Methode #include&lt;bits/stdc++.h&gt;usingnamespacestd;structNode{//s

See all articles