package
0.0.0-20241221191246-b80a13d7bbe0
Repository: https://github.com/yvv4git/go-algorithms.git
Documentation: pkg.go.dev

# README

1046. Last Stone Weight

Level - easy

Task

You are given an array of integers stones where stones[i] is the weight of the ith stone.

We are playing a game with the stones. On each turn, we choose the heaviest two stones and smash them together. Suppose the heaviest two stones have weights x and y with x <= y. The result of this smash is:

  • If x == y, both stones are destroyed, and
  • If x != y, the stone of weight x is destroyed, and the stone of weight y has new weight y - x.

At the end of the game, there is at most one stone left.

Return the weight of the last remaining stone. If there are no stones left, return 0.

Объяснение

Необходимо определить вес последнего оставшегося камня, если такой останется. Если все камни разрушатся, то результат должен быть 0.

Условие:
У вас есть набор камней, каждый из которых имеет определенный вес. Камни могут быть разбиты по определенным правилам:

  • Берем два самых тяжелых камня.
  • Если вес этих камней одинаков, оба камня разрушаются.
  • Если вес разный, то более легкий камень разрушается, а более тяжелый камень теряет вес, равный весу более легкого камня.

Пример:

Copy
Вход: [2,7,4,1,8,1]
Выход: 1

Example 1:

Input: stones = [2,7,4,1,8,1]
Output: 1
Explanation: 
We combine 7 and 8 to get 1 so the array converts to [2,4,1,1,1] then,
we combine 2 and 4 to get 2 so the array converts to [2,1,1,1] then,
we combine 2 and 1 to get 1 so the array converts to [1,1,1] then,
we combine 1 and 1 to get 0 so the array converts to [1] then that's the value of the last stone.

Example 2:

Input: stones = [1]
Output: 1

Constraints:

  • 1 <= stones.length <= 30
  • 1 <= stones[i] <= 1000