Menu
CoddyTech

Best Time to Buy and Sell Stock

LeichtGreedypython iconjava iconcpp iconc iconjs icon+10

Du erhältst die Preise einer Aktie über mehrere Tage hinweg, einen Preis pro Tag. Du kannst an einem Tag eine Aktie kaufen und sie an einem späteren Tag verkaufen. Der Gewinn ist der Verkaufspreis abzüglich des Kaufpreises, und du möchtest den größtmöglichen Gewinn erzielen. Wenn jeder Handel Verlust bedeuten würde, handelst du einfach nicht und erzielst 0.

Betrachte die Preise [7, 2, 5, 9, 1, 4]. Wenn du am Tag 1 für 2 kaufst und am Tag 3 für 9 verkaufst, erzielst du 7, und kein anderes Tagespaar ist besser. Ein Kauf für 1 am Tag 4 scheint verlockend, weil es der günstigste Tag ist, aber am einzigen späteren Tag liegt der Verkaufspreis bei 4, sodass dieser Handel nur 3 einbringt.

Alle Tagespaare auszuprobieren funktioniert, ist aber bei langen Preislisten viel zu langsam. Stattdessen kannst du die Tage mit nur einem Durchlauf durchgehen. Wenn du heute verkaufst, ist der beste Kauftag der günstigste Tag bisher. Behalte also unterwegs den niedrigsten Preis im Blick. Der beste Gewinn für heute ist der heutige Preis abzüglich des niedrigsten Preises, und die Antwort ist der größte dieser Gewinne.

Schreibe eine Funktion namens maxProfit, die eine Liste von Ganzzahlen prices erhält, wobei prices[i] der Aktienkurs am Tag i ist, und den größten Gewinn zurückgibt, den du erzielen kannst, indem du an einem Tag kaufst und an einem späteren Tag verkaufst. Wenn kein Handel Gewinn bringt, gib 0 zurück.

Einschränkungen: 1 ≤ prices.length ≤ 10^5, 0 ≤ prices[i] ≤ 10^4.

Funktion

maxProfit(arg1: integer-array) → integer
arg1integer-array
Gibt zurückinteger

Beispiele

Eingabe
arg1 = [7, 2, 5, 9, 1, 4]
Ausgabe
7

lock icon+12 versteckte Tests beim Einreichen

Code zurücksetzen
def maxProfit(prices):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Eingabe

arg1 = [7, 2, 5, 9, 1, 4]

Erwartet

7