


Schreiben Sie ein Programm mit C++, um die Anzahl der Subarrays mit der Summe in einem bestimmten Bereich zu ermitteln
In diesem Artikel verwenden wir ein C++-Programm, um die Anzahl der Unterarrays zu ermitteln, deren Summe innerhalb eines bestimmten Bereichs liegt. Wir haben ein Array positiver Ganzzahlen arr[] und einen Bereich {L, R} und müssen die Gesamtzahl der Unterarrays zählen, deren Summe in den angegebenen Bereich L bis R fällt. Hier ist also ein einfaches Beispiel des Problems –
Input : arr[] = {1, 4, 6}, L = 3, R = 8 Output : 3 The subarrays are {1, 4}, {4}, {6}. Input : arr[] = {2, 3, 5, 8}, L = 4, R = 13 Output : 6 The subarrays are {2, 3}, {2, 3, 5}, {3, 5}, {5}, {5, 8}, {8}.
Möglichkeiten, die Lösung zu finden
Wir erklären zwei Möglichkeiten, dieses Problem mit C++ zu lösen –
Brute-Force-Methode
Zur Berechnung wird jeweils die grundlegendste Brute-Force-Methode verwendet sub Die Summe eines Arrays und ermittelt dann, ob die Summe innerhalb des angegebenen Bereichs liegt. (Dieser Ansatz wird jedoch viel Zeit in Anspruch nehmen, da seine Zeitkomplexität O(n*n) beträgt, wobei n die Größe des Arrays ist.)
Effiziente Methode
Speichern Die effiziente Methode ist nun die Verwendung der Schiebefenstertechnik. Mit dieser Technik berechnen wir das Ergebnis schneller oder effizienter in O(n).
Beispiel
#include <bits/stdc++.h> using namespace std; int subCount(int *arr, int n, int x){ int start = 0, end = 0, sum = 0, count = 0; while (end < n){ // we will be moving right border in this loop sum = sum + arr[end]; while(start <= end && sum >= x){ // this loop will move our left border sum = sum - arr[start]; // we will decrement sum while moving left border. // For excluding the previous elements. start++; // and move the left border. } count = count + ((end - start) + 1); // counting the subarrays. end++; } return count; } int main(){ int arr[] = { 1, 4, 6 }; int n = sizeof(arr) / sizeof(arr[0]); int L = 3; int R = 8; int answer; answer = subCount(arr, n, R) - subCount(arr, n, (L - 1)); // Final Answer. cout << answer << "\n"; return 0; }
Ausgabe
3
Oben Codebeschreibung
Bei dieser Methode zählen wir die Anzahl der Unterarrays, deren Summe kleiner als die Obergrenze des angegebenen Bereichs ist, und subtrahieren dann die Anzahl der Unterarrays, deren Summe ist kleiner als die Obergrenze des angegebenen Bereichs. Verwenden Sie die Subcount-Funktion, um weniger als die Untergrenze eines bestimmten Bereichs zu erhalten.
Subcount-Funktion
Diese Funktion verwendet die Schiebefenstertechnik, um die Anzahl eines Subarrays zu ermitteln, dessen Anzahl kleiner als x ist.
Zunächst beginnen wir mit „Ende“ und „Start“, die beide den Wert 0 haben . Wenn wir über ein Array iterieren, behalten wir die Summe der Elemente vom Anfang bis zum Ende bei. Wenn danach unser Start gleich Ende ist und die Summe größer oder gleich x ist, beginnen wir mit der Verschiebung des Starts und verringern die Summe weiter, während wir Elemente aus der Summe herausnehmen.
Bis unsere Summe kleiner als x wird oder unser Anfang größer als unser Ende wird. Jetzt erhöhen wir die Anzahl um die Anzahl der Subarrays und erhöhen dann die rechte Grenze um 1. Nachdem die äußere Schleife beendet ist, geben wir nun die Gesamtzahl des Subarrays zurück.
Fazit
In diesem Artikel haben wir das Problem gelöst, die Anzahl der Subarrays zu ermitteln, deren Summe innerhalb eines bestimmten Bereichs in O(n)-Zeitkomplexität liegt, indem wir die Schiebefenstertechnik verwendet haben. Wir haben dieses Problem auch anhand eines C++-Programms kennengelernt und erfahren, wie wir es einfach (normal und effizient) lösen können. Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python usw. schreiben.
Das obige ist der detaillierte Inhalt vonSchreiben Sie ein Programm mit C++, um die Anzahl der Subarrays mit der Summe in einem bestimmten Bereich 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



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,

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

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=(

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

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: −

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,

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*

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&
