真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LeetCode如何實現(xiàn)刪除與獲得點數(shù)

小編給大家分享一下LeetCode如何實現(xiàn)刪除與獲得點數(shù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,貞豐企業(yè)網(wǎng)站建設,貞豐品牌網(wǎng)站建設,網(wǎng)站定制,貞豐網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,貞豐網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1

 題目描述

給定一個整數(shù)數(shù)組 nums ,每次操作中,選擇任意一個 nums[i] ,刪除它并獲得 nums[i] 的點數(shù),同步刪除每個等于 nums[i] - 1 或 nums[i] + 1 的元素。初始點數(shù)為0,返回可獲得的最大點數(shù)。如:nums=[3,4,2],返回6。(首先選擇4,積累4點數(shù),同時刪除3,再選擇2,再積累2點數(shù),總共為6。其他方式積累的點數(shù)均小于6)

2

 題解

思路:動態(tài)規(guī)劃
通過題目要求,首先要明確一點是:  當選擇了一個值獲得其點數(shù)  ,則其他相同的值  也會選擇。  因為當選擇一個值時,  相鄰值已被  刪除,因此  其他相同的值不會被刪除,一定會選擇到。因此可以建立一個列表value,以值作為下標,記錄選擇每個值時對應可獲得的點數(shù)。如:[2,2,3,3,4],value[2]=2*2,value[3]=3*2,value[4]=4*1,所以最后得到value=[0,0,4,6,4]。
  • 中間狀態(tài):此處中間狀態(tài)dp[i]表示從1選擇到i可獲得的最大點數(shù)。

  • 狀態(tài)轉移:一個值在整個過程中只有被刪除和被獲取點數(shù)兩個可能,并且獲取與否會影響其他數(shù)值的被選擇情況。因此新來一個數(shù),要么不選,則此時dp[i]=dp[i-1];如果選,則i-1就不能選,此時dp[i]=dp[i-2]+value[i],所以最終dp[i]=max(dp[i-1],dp[i-2]+value[i])。

class Solution:    def deleteAndEarn(self, nums: List[int]) -> int:        if not nums:            return 0        dp = [0]*(max(nums)+1)        value = dp.copy()        #value = [0]*(max(nums)+1)        for i,a in enumerate(nums):            value[a]+=a        dp[1] = value[1]        for i in range(2,max(nums)+1):            dp[i]=max(dp[i-1],dp[i-2]+value[i])        return dp[-1]

以上是“LeetCode如何實現(xiàn)刪除與獲得點數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當前標題:LeetCode如何實現(xiàn)刪除與獲得點數(shù)
新聞來源:http://weahome.cn/article/gjesoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部