


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
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; }
Ausgabe
Number of subarrays with odd sum : 9
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; }
Ausgabe
Number of subarrays with odd sum : 9
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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

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-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,

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

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

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,

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<bits/stdc++.h>usingnamespacestd;structNode{//s
