„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 > Den LeetCode knacken. Beste Zeit zum Kaufen und Verkaufen von Aktien II

Den LeetCode knacken. Beste Zeit zum Kaufen und Verkaufen von Aktien II

Veröffentlicht am 05.08.2024
Durchsuche:278

In meinem ständigen Bestreben, meine LeetCode-Fähigkeiten zu verbessern, habe ich mich mit dem Problem „Bester Zeitpunkt zum Kauf und Verkauf von Aktien II“ befasst. Diese Herausforderung ist eine Weiterentwicklung des klassischen Problems „Best Time to Buy and Sell Stock II“ (LeetCode 121), jedoch mit einem entscheidenden Unterschied: *Sie können mehrere Transaktionen ausführen, um den Gewinn zu maximieren.
*

Ein visueller Ansatz

Bevor ich in den Code eintauchte, fand ich es unglaublich hilfreich, das Problem auf einem Whiteboard zu visualisieren. Dadurch konnte ich das Problem in kleinere, besser überschaubare Schritte unterteilen.

Cracking the LeetCode . Best Time to Buy and Sell Stock II

Der gierige Ansatz

Angesichts der Flexibilität, unbegrenzte Transaktionen durchzuführen, schien ein gieriger Ansatz vielversprechend. Die Grundidee ist einfach: Immer wenn der Kurs einer Aktie im Vergleich zum Vortag steigt, betrachten wir dies als potenzielle Gewinnchance. Indem wir alle diese Preisunterschiede addieren, berechnen wir effektiv den maximalen Gewinn.

Python-Implementierung

Hier ist der Python-Code, der diese gierige Strategie implementiert:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        profit = 0

        for i in range(1, len(prices)):
            if prices[i] > prices[i-1]:
                profit =prices[i] - prices[i-1]

        return profit

JavaScript-Implementierung

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    var profit = 0;
    for (var i = 1; i  prices[i-1])
    {
        profit  = Number(prices[i] - prices[i-1])
    }
    }

    return profit
};

Zeit- und Raumkomplexität

  • Die zeitliche Komplexität dieses Ansatzes beträgt O(N), wobei N = Länge des Arrays.
  • Die Raumkomplexität beträgt N(1), da wir an Ort und Stelle vergleichen.
Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/this-is-learning/cracking-the-leetcode-122-best-time-to-buy-and-sell-stock-ii-17k5?1Falls vorhanden Verstoß, wenden Sie sich zum Löschen bitte an [email protected]
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