溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

leetcode怎么計(jì)算最后一塊石頭的重量

發(fā)布時(shí)間:2021-12-15 14:33:08 來源:億速云 閱讀:120 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“l(fā)eetcode怎么計(jì)算最后一塊石頭的重量”,在日常操作中,相信很多人在leetcode怎么計(jì)算最后一塊石頭的重量問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”leetcode怎么計(jì)算最后一塊石頭的重量”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

一、題目?jī)?nèi)容

有一堆石頭,每塊石頭的重量都是正整數(shù)。

每一回合,從中選出兩塊 最重的 石頭,然后將它們一起粉碎。假設(shè)石頭的重量分別為 x 和 y,且 x <= y。那么粉碎的可能結(jié)果如下:

如果 x == y,那么兩塊石頭都會(huì)被完全粉碎;
如果 x != y,那么重量為 x 的石頭將會(huì)完全粉碎,而重量為 y 的石頭新重量為 y-x。
最后,最多只會(huì)剩下一塊石頭。返回此石頭的重量。如果沒有石頭剩下,就返回 0。

示例:

輸入:[2,7,4,1,8,1]
輸出:1
解釋:
先選出 7 和 8,得到 1,所以數(shù)組轉(zhuǎn)換為 [2,4,1,1,1],
再選出 2 和 4,得到 2,所以數(shù)組轉(zhuǎn)換為 [2,1,1,1],
接著是 2 和 1,得到 1,所以數(shù)組轉(zhuǎn)換為 [1,1,1],
最后選出 1 和 1,得到 0,最終數(shù)組轉(zhuǎn)換為 [1],這就是最后剩下那塊石頭的重量。

提示:

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

二、解題思路

遞歸,每次排序后取出最后兩個(gè)比較,相等則繼續(xù)遞歸,否則添加二者的差值進(jìn)stones,再遞歸;

三、代碼

class Solution:
    def lastStoneWeight(self, stones: list) -> int:
        n = len(stones)
        if n == 1:
            return stones[0]
        elif n == 0:
            return 0

        stones.sort()
        stone1, stone2 = stones[-2], stones[-1]
        stones.remove(stone1)
        stones.remove(stone2)

        if stone1 == stone2:
            return self.lastStoneWeight(stones)
        else:
            stones.append(stone2 - stone1)
            return self.lastStoneWeight(stones)



if __name__ == '__main__':
    stones = [2, 7, 4, 1, 8, 1]
    # stones = [2, 2]
    s = Solution()
    ans = s.lastStoneWeight(stones)
    print(ans)

到此,關(guān)于“l(fā)eetcode怎么計(jì)算最后一塊石頭的重量”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI