1475. Endgültige Preise mit Sonderrabatt in einem Geschäft
Schwierigkeit:Einfach
Themen: Array, Stack, Monotoner Stack
Sie erhalten ein ganzzahliges Array „Preise“, wobei „Preise[i]“ der Preis des itenArtikels in einem Geschäft ist.
Es gibt einen Sonderrabatt auf Artikel im Shop. Wenn Sie den iten Artikel kaufen, erhalten Sie einen Rabatt, der den Preisen[j] entspricht, wobei j der Mindestindex ist, sodass j > i und Preise[j] <= Preise[i]. Andernfalls erhalten Sie überhaupt keinen Rabatt.
Gibt eine Ganzzahl-Array-Antwort zurück, wobei Antwort[i] der Endpreis ist, den Sie für den itenArtikel im Shop zahlen, unter Berücksichtigung des Sonderrabatts.
Beispiel 1:
Beispiel 2:
Beispiel 3:
Einschränkungen:
Hinweis:
Lösung:
Wir müssen einen speziellen Rabatt gewähren, der auf der Bedingung basiert, dass es einen späteren Artikel mit einem Preis gibt, der kleiner oder gleich dem aktuellen Preis ist. Wir können einen Brute-Force-Ansatz verwenden. Wir durchlaufen das Preisarray und suchen für jeden Artikel nach dem ersten Artikel mit einem niedrigeren oder gleichen Preis danach. Dies kann mit verschachtelten Schleifen erreicht werden. Wir können einen Stapel verwenden, um die Preise der Artikel effizient zu verfolgen und den Sonderrabatt anzuwenden.
Stack-Ansatz:
Edge Case: Wenn später in der Reihe kein Artikel einen niedrigeren Preis hat, wird kein Rabatt gewährt.
Lassen Sie uns diese Lösung in PHP implementieren: 1475. Endgültige Preise mit Sonderrabatt in einem Geschäft
Erläuterung:
Initialisierung:
- Erstellen Sie ein Array $result mit der gleichen Größe wie $prices und initialisieren Sie es auf 0.
Äußere Schleife:
- Durchlaufen Sie jeden Preis bei Index $i, um seinen Endpreis nach Rabatten zu berechnen.
Innere Schleife:
- Iterieren Sie für jeden Preis $i die nachfolgenden Preise $j (wobei $j > $i).
- Überprüfen Sie, ob $prices[$j] kleiner oder gleich $prices[$i] ist. Wenn wahr, setzen Sie $discount = $prices[$j] und verlassen Sie die innere Schleife.
Endgültige Preisberechnung:
- Subtrahieren Sie den gefundenen Rabatt von $prices[$i] und speichern Sie das Ergebnis in $result[$i].
Ergebnis zurückgeben:
- Nachdem alle Preise verarbeitet wurden, geben Sie das endgültige Ergebnisarray zurück.
Komplexität:
Dieser Ansatz funktioniert innerhalb der Einschränkungen des Problems (1 <= Preise.Länge <= 500), auch wenn es nicht die optimalste Lösung ist.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonEndgültige Preise mit Sonderrabatt in einem Geschäft. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!