Heim > Backend-Entwicklung > Python-Tutorial > Den LeetCode knacken. Beste Zeit zum Kaufen und Verkaufen von Aktien II

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

WBOY
Freigeben: 2024-08-05 21:42:12
Original
362 Leute haben es durchsucht

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“ beschäftigt. 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 zerlegen.

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. Durch die Addition all dieser Preisunterschiede 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

Nach dem Login kopieren

JavaScript-Implementierung

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

    return profit
};
Nach dem Login kopieren

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 den Ort vergleichen.

Das obige ist der detaillierte Inhalt vonDen LeetCode knacken. Beste Zeit zum Kaufen und Verkaufen von Aktien II. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage