


Ermitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben
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
Lassen Sie es uns anhand eines Beispiels verstehen:-
Input− int arr[] = int arr[] = { 9, 4, 5, 6 , 7 } int splitPoints[] = { 0, 2, 3, 1 } ;
Ausgabe− Die maximale Sub-Array-Summe [22, 13, 9, 9] nach jeder Teilung Teilmengensumme
Nach der ersten Teilung → {9} und {4,5,6,7} >> Die maximale Subarray-Summe beträgt - 22
Nach der zweiten Teilung strong> → {9}, { 4,5 } und {6,7} >> Die maximale Subarray-Summe beträgt - 13
Nach der dritten Teilung →{ 9}, {4,5}, {6} und {7} >> Das maximale Subarray. Die Array-Summe beträgt - 9
Nach der vierten Teilung →{9}, {4}, {5}, {6 } und {7} >> Die maximale Subarray-Summe beträgt 9
Input−int arr[] = int arr[] = { 7, 8, 5, 9, 1 } int splitPoints[] = { 1, 2 , 0, 3 };
Ausgabe−Die maximale Subarray-Summe nach jeder Teilung [15, 115, 10, 9]
Erklärung−Hier zerlegen wir das Array entsprechend seinen Teilungspunkten und erhalten die maximale Teilmengensumme nach jeder Aufteilung
Nach der ersten Aufteilung → {7, 8} und {5,9,1} >> Die maximale Sub-Array-Summe beträgt 15
Nach der zweiten Aufteilung → {7,8}, {5} und {9,1} >> Die maximale Sub-Array-Summe beträgt 115
Nach der dritten Division →{7}, {8}, {5} und {9,1} >> Die maximale Sub-Array-Summe beträgt 115 -Array-Summe ist 10
Nach der vierten Division →{7}, {8}, {5}, {9} und {1} >> Die maximale Sub-Array-Summe beträgt 9
Die im Folgenden verwendete Methode Das Programm lautet wie folgt:
Wir beginnen mit der Methode main()
-
Geben Sie Arrays beliebiger Länge ein, z. B. arr[] und splitPoints[]. Ihre Längen werden berechnet und in der Form berechneSubsetSum(arr.length, splitPoints.length, splitPoints, arr) an die Methode übergeben.
- Erstellen Sie in der Methode berechneSubsetSum()
-
ein ganzzahliges Array als sum[] und setzen Sie sum[0] auf arr[0].
Beginne eine FOR-Schleife von i nach 1 bis zur Länge des Arrays und setze sum[i] auf sum[i - 1] + arr[i] und setze temp[0] auf neue Teilmengen(0, n - 1, sum[n - 1]).
Fahren Sie mit dem Hinzufügen von t2.add(temp[0]) und t1.add(0) fort
Beginnen Sie mit der FOR-Schleife von i bis 0, bis die Länge des splitPoints-Arrays erreicht ist. Innerhalb der Schleife setze currentSplitPoint auf t1.floor(splitPoints[i]) und entferne von t2 auf t2.remove(temp[currentSplitPoint])
setze end auf temp[currentSplitPoint] .last und temp[currentSplitPoint] als neue Teilmengen (currentSplitPoint, splitPoints[i], sum[splitPoints[i]] - (currentSplitPoint == 0 ? 0 : sum[currentSplitPoint - 1]))
Verwenden Sie t2.add(temp[currentSplitPoint]) und temp[splitPoints [i] + 1] = new subSets(splitPoints[i] + 1, end, sum[end] - sum[splitPoints[i] add]])
use t2.add(temp[splitPoints [i] + 1]), t1.add(currentSplitPoint) und t1.add(splitPoints[i] + zum Addieren von 1)
Drucken Sie den t2.first()-Wert aus.
- Erstellen Sie eine Klasse subSets und deklarieren Sie first, last und value als ihre Datenelemente und definieren Sie den Standardkonstruktor als subSets(int f, int l, int v) und setzen Sie first auf f, last Set auf l und value zu v
Erstellen Sie eine Klasse als UtilityComparator, die Comparator implementiert
-
Erstellen Sie eine öffentliche Methode als Vergleich und prüfen Sie, ob s2.value nicht gleich s1.value ist, und geben Sie dann s2 value - s1.value zurück. -
Überprüfen Sie, ob s1.first nicht gleich s2.first ist, und geben Sie s2.first - s1.first zurück
import java.io.IOException; import java.io.InputStream; import java.util.*; class utilityComparator implements Comparator<subSets>{ public int compare(subSets s1, subSets s2){ if(s2.value != s1.value){ return s2.value - s1.value; } if(s1.first != s2.first){ return s2.first - s1.first; } return 0; } } class subSets{ int first; int last; int value; subSets(int f, int l, int v){ first = f; last = l; value = v; } } public class testClass{ static void calculateSubsetSum(int n, int k, int splitPoints[], int arr[]){ int sum[] = new int[n]; sum[0] = arr[0]; for (int i = 1; i < n; i++){ sum[i] = sum[i - 1] + arr[i]; } TreeSet<Integer> t1 = new TreeSet<>(); TreeSet<subSets> t2 = new TreeSet<>(new utilityComparator()); subSets temp[] = new subSets[n]; temp[0] = new subSets(0, n - 1, sum[n - 1]); t2.add(temp[0]); t1.add(0); System.out.println("Maximum subarray sum after each split"); for (int i = 0; i < k; i++){ int currentSplitPoint = t1.floor(splitPoints[i]); t2.remove(temp[currentSplitPoint]); int end = temp[currentSplitPoint].last; temp[currentSplitPoint] = new subSets(currentSplitPoint, splitPoints[i], sum[splitPoints[i]] - (currentSplitPoint == 0 ? 0 : sum[currentSplitPoint - 1])); t2.add(temp[currentSplitPoint]); temp[splitPoints[i] + 1] = new subSets(splitPoints[i] + 1, end, sum[end] - sum[splitPoints[i]]); t2.add(temp[splitPoints[i] + 1]); t1.add(currentSplitPoint); t1.add(splitPoints[i] + 1); System.out.println(t2.first().value); } } public static void main(String[] args){ int arr[] = { 2, 1, 6, 8, 5, 10, 21, 13}; int splitPoints[] = { 3, 1, 2, 0, 4, 5 }; calculateSubsetSum(arr.length, splitPoints.length, splitPoints, arr); } }
Nach dem Login kopieren
-
Das obige ist der detaillierte Inhalt vonErmitteln Sie in Java die maximale Subarray-Summe von Subarrays, nachdem Sie ein Array basierend auf einer bestimmten Abfrage in Subarrays aufgeteilt haben. 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 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

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 Beitrag werden wir C++ verwenden, um die Anzahl der Subarrays zu ermitteln, deren Summe kleiner als K ist. In diesem Problem haben wir ein Array arr[] und eine Ganzzahl K. Jetzt müssen wir die Subarrays finden, deren Summe kleiner als K ist. Hier ist das Beispiel −Input:arr[]={1,11,2,3,15}K=10Output:4{1},{2},{3}and{2,3}, um die Lösung zu finden. Jetzt haben wir Zur Lösung des gegebenen Problems werden zwei verschiedene Ansätze verwendet: Brute Force. Bei diesem Ansatz durchlaufen wir alle Unterarrays und berechnen deren Summe. Wenn die Summe kleiner als k ist, vergleichen wir sie mit k, um unsere Antwort zu erhöhen. Beispiel#include<

Wir erhalten ein Array Arr[] mit ganzzahligen Werten. Das Ziel besteht darin, die maximale Anzahl von Subarrays zu finden, deren XOR 0 ist. Die Bits eines Subarrays können beliebig oft ausgetauscht werden. Hinweis: -1

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 in C++, um die Anzahl der Subarrays mit ungeraden Summen zu ermitteln. Um die Anzahl der Unterarrays ungerader Summen zu ermitteln, können wir verschiedene Methoden verwenden. Hier ist ein einfaches Beispiel: Input:array={9,8,7,6,5}Output:9Explanation:Sumofsubarray-{9}= 9{7

Ein Array ist eine Sammlung ähnlicher Daten, die zusammenhängend an benachbarten Speicherorten gespeichert sind. Durch die Definition des Offset-Werts als spezifischer Basiswert für die Datenbank ist es einfacher, die spezifische Position jedes Elements zu bewerten. Der Basiswert für diesen bestimmten Index ist Null und der Offsetwert ist die Differenz zwischen den beiden bestimmten Indizes. Ein Subarray ist Teil eines bestimmten Arrays und kann als eine Reihe von Variablen definiert werden, die mit mehreren Werten gekennzeichnet sind. Das längste Subarray bezieht sich auf ein Array, in dem alle Elemente im Array größer als K sind. Hier ist die Summe der maximalen Summe des Subarrays kleiner oder gleich dem angegebenen Datensatz im angegebenen Datensatz. Um die Länge des längsten Subarrays mit weniger als 1 in einem Datensatz zu ermitteln, müssen wir lediglich die Gesamtzahl der Einsen in einem bestimmten Subarray ermitteln. HINWEIS: Die Anzahl sollte größer als die Anzahl Null sein. Der größte gemeinsame Teiler ist ein mathematisches Phänomen, bei dem ich

PHP-Array ist eine sehr häufig verwendete Datenstruktur, und die Zusammenführungs- und Aufteilungsoperationen von Arrays sind häufig in der Entwicklung enthalten. In diesem Artikel wird erläutert, wie Sie diese beiden Vorgänge mithilfe der PHP-Sprache implementieren und entsprechende Codebeispiele beifügen. 1. Arrays zusammenführen Der Vorgang des Zusammenführens von Arrays kann mit der Funktion array_merge() implementiert werden. Diese Funktion akzeptiert mehrere Arrays als Argumente und führt sie zu einem neuen Array zusammen. Codebeispiel: $array1=["apple","ba

In diesem Artikel beschreiben wir eine Methode, um die Anzahl der Primzahlen in einem Subarray zu ermitteln. Wir haben ein Array positiver Zahlen arr[] und q-Abfragen mit zwei ganzen Zahlen, die unseren Bereich {l,R} darstellen, und wir müssen die Anzahl der Primzahlen im angegebenen Bereich ermitteln. Unten ist ein Beispiel für das gegebene Problem – Eingabe:arr[]={1,2,3,4,5,6},q=1,L=0,R=3Ausgabe:2Im angegebenen Bereich sind die Primzahlen{2,3}.Eingabe: arr []={2,3,5,8,12,11},q=1,L=0,R=5Ausgabe:4Im angegebenen Bereich sind die Primzahlen{2,3,5
