„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Anzahl der Möglichkeiten zum Teilen von Array

Anzahl der Möglichkeiten zum Teilen von Array

Gepostet am 2025-03-25
Durchsuche:820

Number of Ways to Split Array

2270. Anzahl der Möglichkeiten, Array zu teilen

Schwierigkeitsgrad: medium

themen: array, Präfix sum

Sie erhalten eine 0-indexed Integer Array nums der Länge n.

nums enthält eine valte split unter Index I Wenn Folgendes wahr ist:

  • Die Summe der ersten I 1 -Elemente ist größer als oder gleich die Summe der letzten n - i - 1 Elemente.
  • da ist mindestens ein Element rechts von i. Das heißt, 0

return die Nummer von gültige Splits in nums .

.

Beispiel 1:

  • input: nums = [10,4, -8,7]
  • output: 2
  • Erläuterung: Es gibt drei Möglichkeiten, NUMs in zwei nicht leere Teile aufzuteilen:
    • trenc nums am Index 0. Dann ist der erste Teil [10], und seine Summe beträgt 10. Der zweite Teil ist [4, -8,7], und seine Summe beträgt 3.. Da 10> = 3, i = 0 eine gültige Spaltung ist.
    • trenc nums im Index 1. Dann ist der erste Teil [10,4], und seine Summe beträgt 14. Der zweite Teil ist [-8,7] und seine Summe ist -1. Da 14> = -1, ist i = 1 eine gültige Spaltung.
    • trenc nums auf Index 2. Dann ist der erste Teil [10,4, -8], und seine Summe beträgt 6. Der zweite Teil ist [7], und seine Summe beträgt 7. Da 6
    • Somit ist die Anzahl der gültigen Spaltungen in NUMS 2.

Beispiel 2:

  • input: nums = [2,3,1,0]
  • output: 2
  • Erläuterung: Es gibt zwei gültige Spaltungen in NUMs:
    • trenc nums im Index 1. Dann ist der erste Teil [2,3], und seine Summe beträgt 5. Der zweite Teil ist [1,0], und seine Summe beträgt 1. Da 5> = 1, ist i = 1 eine gültige Spaltung.
    • trenc nums am Index 2. Dann ist der erste Teil [2,3,1], und seine Summe beträgt 6. Der zweite Teil ist [0], und seine Summe beträgt 0. Da 6> = 0, ist i = 2 eine gültige Spaltung.

Einschränkungen:

  • 2 5
  • -10 5 5

Hinweis:

  1. Für jeden Index I finden wir die Summe der ersten (i 1) Elemente aus der Summe der ersten I -Elemente?
  2. Wenn die Gesamtsumme des Arrays bekannt ist

Lösung:

Wir können es mit den folgenden Schritten angehen:

Ansatz:

  1. prefix sum : Zunächst berechnen wir die kumulative Summe des Arrays von links, was hilft, die Summe der ersten I 1 -Elemente zu überprüfen.
  2. Total Sum : Berechnen Sie die Gesamtsumme des Arrays, was bei der Überprüfung der Summe der verbleibenden Elemente nützlich ist
  3. iterieren Sie über das Array
  4. : Für jeden gültigen Index I (wobei 0
  5. efficiency
  6. : Verwenden Sie die Präfixsumme und die Gesamtsumme für effiziente Vergleiche, anstatt die Summen wiederholt neu zu berechnen.
  7. Lassen Sie uns diese Lösung in PHP implementieren:
2270. Anzahl der Möglichkeiten, um Array zu teilen


php /** * @param Integer [] $ nums * @return Integer */ Funktion WayStosplitarray ($ nums) { ... ... ... /** * Gehen Sie zu ./solution.php */ } // Beispiel Verwendung: $ nums1 = [10, 4, -8, 7]; echo WayStosplitarray ($ nums1); // Ausgabe: 2 $ nums2 = [2, 3, 1, 0]; echo WayStosplitarray ($ nums2); // Ausgabe: 2 ?>


    $ totalsum
  1. : Diese Variable speichert die Summe aller Elemente im NUMS -Array.
  2. $ prefixsum
  3. : Diese Variable verfolgt die kumulative Summe von Elementen von links (bis in den Index i).
  4. $ realingsum
  5. : Dies ist die Summe der verbleibenden Elemente von Index I 1 bis zum Ende des Arrays. Es wird berechnet, indem $ $ prefixsum von $ sotalalumum subtrahiert werden.
  6. Gültiger Split -Check
  7. : Für jeden Index I überprüfen wir, ob die Präfix -Summe größer oder gleich der verbleibenden Summe ist.
  8. Zeitkomplexität:

    o (n)
  • : Wir gehen einmal durch das Array, um die Summe zu berechnen und erneut nach gültigen Spaltungen zu überprüfen. Daher ist die Zeitkomplexität in Bezug auf die Länge des Arrays linear.
  • Raumkomplexität:

    o (1)
  • : Wir verwenden nur ein paar zusätzliche Variablen ($ Totalsum, $ Präfixsum, $ restalsum), daher ist die Raumkomplexität konstant.
wenden Sie sich an links

Wenn Sie diese Serie hilfreich gefunden haben, sollten Sie den

repository

einen Stern auf Github geben oder den Beitrag in Ihren Lieblingsnetzwerken teilen? Ihre Unterstützung würde mir viel bedeuten! Wenn Sie mehr hilfreiche Inhalte wie diesen wünschen, können Sie mir gerne folgen:

    linkedIn
  • github
Freigabeerklärung Dieser Artikel ist reproduziert unter: https://dev.to/mdarifulhaque/2270-number-of-ways-to-split-array-4d5p?1 Wenn es zu Verstößen vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3