150 najlepszych wywiadówŁatwe

Ostatni kamienny ciężar

Szczegółowy przewodnik i implementacja Python dla problemu „Ostatni ciężar kamienia”.

Oświadczenie o problemie

Łatwe

Otrzymujesz tablicę liczb całkowitych kamieni, gdzie kamienie[i] to waga i-tego kamienia.

Bawimy się w kamienie. W każdej turze wybieramy dwa najcięższe kamienie i rozbijamy je o siebie. Załóżmy, że dwa najcięższe kamienie mają ciężary x i y, przy czym x <= y. Rezultatem tego uderzenia jest:

- Jeśli x == y, oba kamienie ulegają zniszczeniu,

- Jeśli x != y, kamień o wadze x ulega zniszczeniu, a kamień o wadze y otrzymuje nową wagę y - x.

Na koniec gry zostaje maksymalnie jeden kamień.

Zwróć wagę ostatniego pozostałego kamienia. Jeśli nie pozostały żadne kamienie, zwróć 0.

Napisz funkcję lastStoneWeight(stones: List[int]) -> int.

Ograniczenia
  • 1 <= len(stones) <= 30
  • 1 <= stones[i] <= 1000

Przykłady

Example 1
Input
stones = [2,7,4,1,8,1]
Output
1
Explanation

Smash 7 and 8 to get 1, array becomes [2,4,1,1,1]. Smash 2 and 4 to get 2, array becomes [2,1,1,1]. Smash 2 and 1 to get 1, array becomes [1,1,1]. Smash 1 and 1 to get 0, array becomes [1]. The last remaining stone is 1.

Example 2
Input
stones = [1]
Output
1
Explanation

Only one stone, so weight is 1.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla sterty/kolejki priorytetowej, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.