Last Stone Weight (LeetCode Day 12 Question) | Programming Tutorials

preview_player
Показать описание


Given a collection of stones, each stone has a positive integer weight. Each turn, we choose the two heaviest stones and smash them together.

Suppose the stones have weights x and y with x is less than equal to y. The result of this smash is:

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

At the end, there is at most 1 stone left.
Return the weight of this stone (or 0 if there are no stones left.)


Input: {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 last stone.

This problem is the day 12 challenge of LeetCode 30 day challenge.

Рекомендации по теме
Комментарии
Автор

Also we can reverse the priority queue ordering If we add elements with - negetive sign

Shishiraithal
join shbcf.ru