日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

546. Remove Boxes 移除盒子

發布時間:2024/5/7 编程问答 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 546. Remove Boxes 移除盒子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給出一些不同顏色的盒子,盒子的顏色由數字表示,即不同的數字表示不同的顏色。
你將經過若干輪操作去去掉盒子,直到所有的盒子都去掉為止。每一輪你可以移除具有相同顏色的連續 k 個盒子(k?>= 1),這樣一輪之后你將得到 k*k 個積分。
當你將所有盒子都去掉之后,求你能獲得的最大積分和。

示例:

輸入:boxes = [1,3,2,2,2,3,4,3,1] 輸出:23 解釋: [1, 3, 2, 2, 2, 3, 4, 3, 1] ----> [1, 3, 3, 4, 3, 1] (3*3=9 分) ----> [1, 3, 3, 3, 1] (1*1=1 分) ----> [1, 1] (3*3=9 分) ----> [] (2*2=4 分)

提示:

  • 1 <= boxes.length <= 100
  • 1 <= boxes[i]?<= 100

動態規劃

首先,假設我們拿到的 boxes 長這樣:

假設我們經過一系列操作后消掉了其中一些盒子:

對于這樣一個子序列,我們就可以記錄到dp數組里。我們可以操作的范圍是l到r的子序列。由于我們對每個子序列默認都是點擊boxes[r]來消除,因此要知道r的后面還連著幾個與boxes[r]相同顏色的盒子,記為k。如下圖,l = 0, r = 6, k = 2, 將其能獲得的最高得分記在dp[0][6][2]。

現在我們調用 calculatePoints(i, r, k) 來計算它的最高得分 dp[i][r][k]。

calculatePoints(i, r, k)

在我們這個子序列中,dp[0][6][2] 與 dp[0][5][3] 實際上是等價的。我們將r向左一直移動到不能再移動為止。

接著,我們計算出不同策略的得分,取最高分。

策略 1

我們可以直接點boxes[r],把最后4個盒子一次性消除,獲得16分!

剩下的盒子成為這樣一個子序列 dp[0][4][0]:

策略1得分:4*4 + dp[0][4][0]

策略 2

我們還可以把夾在中間的雜魚盒子都消掉,讓后面連起來的盒子數更多:

為了找到可以跟 boxes[r] 連起來的盒子,令 i = l:

i++

直到 boxes[i] == boxes[r],就說明我們搜索到了

在這個例子中,消掉雜魚盒子能獲得的分數是 dp[3][4][0]。

剩下的盒子的得分是 dp[0][2][4] 。

綜上,策略2得分:dp[0][2][4] + dp[3][4][0]

總結

為了取得一個子序列的最高得分,我們分不同策略,每種策略的得分可以看作是1~2個子子序列的最高分之和。

Code

def removeBoxes(self, boxes: List[int]) -> int:def dp(l, r, n):nonlocal memo, boxesif memo.get((l, r, n)):return memo[(l, r, n)]if l == r - 1:return (n + 1) * (n + 1)if boxes[l] == boxes[l + 1]:return dp(l + 1, r, n + 1)res = (n + 1) * (n + 1) + dp(l + 1, r, 0)for l2 in range(l + 2, r):if boxes[l2] == boxes[l]:res = max(res, dp(l + 1, l2, 0) + dp(l2, r, n + 1))memo[(l, r, n)] = resreturn resmemo = {}return dp(0, len(boxes), 0)

復雜度分析

  • 時間復雜度:O(n4)O(n^4)O(n4)。最壞情況下每個 f(l,r,k)f(l, r, k)f(l,r,k) 被計算一次,每次狀態轉移需要 O(n)O(n)O(n) 的時間復雜度。
  • 空間復雜度:O(n3)O(n^3)O(n3)dp\rm dpdp 數組的空間代價是 O(n3)O(n^3)O(n3),遞歸使用棧空間的代價為 O(n)O(n)O(n)

總結

以上是生活随笔為你收集整理的546. Remove Boxes 移除盒子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕人妻一区二 | 综合国产一区 | 91免费看黄 | av之家在线 | 国产精品第一区 | 欧美影视一区二区 | 91夜色视频| 精品无码人妻少妇久久久久久 | 国产精品日日摸夜夜爽 | 国产午夜福利100集发布 | chinese精品自拍hd | 伊人久久视频 | 中文字幕二区在线观看 | 性猛交ⅹxxx富婆视频 | 欧美一区 | 国产在线看片 | 三级男人添奶爽爽爽视频 | wwwxxxx国产 | 天天射夜夜 | 韩国中文字幕在线观看 | 99re热视频| 久操视频免费观看 | 日本中文字幕精品 | 欧美视频在线一区二区三区 | 福利小视频在线观看 | 好吊日在线观看 | 4444亚洲人成无码网在线观看 | 国产美女在线精品 | www.99在线| 男男免费视频 | 欧美一区二区三区成人 | 美女调教视频 | 四虎国产成人永久精品免费 | 午夜精品久久99蜜桃的功能介绍 | 蜜桃av噜噜一区二区三区 | 免费毛片视频网站 | 久草免费新视频 | 欧美人体视频一区二区三区 | 国产女人被狂躁到高潮小说 | 欧美有码视频 | 97久久人澡人人添人人爽 | 国产成人无码精品久久久电影 | 九九综合久久 | 天天舔天天射 | 天天做天天爱夜夜爽 | 人人妻人人澡人人爽精品欧美一区 | 狠狠干少妇 | 欧美四级在线观看 | 久久综合久久88 | 日本不卡高字幕在线2019 | 少妇4p | 久久久久久久久久久久Av | 中文字幕久久久久 | 91成品视频| 亚洲一区在线免费观看 | 国产精品黄视频 | 国产美女性生活 | 中文字幕超清在线观看 | 国产精品视频 | 98精品国产 | 中文字幕免费观看视频 | 欧美中文一区 | 激情小说中文字幕 | av在线播放网| 亚洲成人自拍偷拍 | 先锋资源国产 | 黄色一级视频在线观看 | 国产午夜福利视频在线观看 | 日本三级中文字幕 | 国产亚洲欧美在线视频 | 日韩精品在线免费观看 | 免费看又黄又无码的网站 | 小俊大肉大捧一进一出好爽 | 无遮挡又爽又刺激的视频 | 最新最近中文字幕 | a资源在线观看 | 在线观看www. | 国产精品99久久久久久久女警 | 国产伦精品一区二区三区免.费 | 国产51精品| 日本久久一区二区 | 亚洲美女性生活视频 | 上原亚衣av一区二区三区 | 国产高清久久久 | jizzjizz在线播放 | 久久这里都是精品 | 国产精品美女久久久久久久久 | 欧美大片在线看免费观看 | 爱爱免费小视频 | 自拍偷拍在线播放 | 天堂av在线中文 | 国产精品免费久久 | 日韩视频一二三 | 美女插插| 五月色丁香 | 精品国产一区二区三区性色 | 亚洲片国产一区一级在线观看 | 中文字幕导航 | 日韩人妻无码精品久久久不卡 |