乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。
注意:本題相對原題稍作改動
這道題與著名的小偷問題其實是相同的,小偷要偷到最多價值的東西,但是不能偷相鄰的地方,選擇最優序列。方法採用動態規劃,一些邊界條件注意判斷。
public
static
intmassage
(int
nums)
int len=nums.length;
int[
]dp=
newint
[len];if
(len<2)
dp[0]
=nums[0]
; dp[1]
=math.
max(nums[0]
,nums[1]
);for(
int i=
2;i)return dp[len-1]
;}
每日一練之按摩師
解題思路對於每個預定可以有接收和不接收兩種模式 can 為接收第 n 個數的最大值,它等於 不接收上乙個的最大值 這個的時間的長 和 接受上乙個的最大值 的最大值。cannot 為不接受第 n 個數的最大值,它等於 接受第 n 1 個數的最大值 和 不接受第 n 1 的最大值 的最大值。class ...
刷題53 按摩師
乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 輸入 1,2,3,1 輸出 4 解釋 選擇 1 號預約和 3 ...
每日一題系列 第五天 按摩師 動態規劃
資料鏈結 寫的很好,推薦看一看 一開始看到這道題,要求最優解,我就想到了動態規劃,但是因為本人比較菜,還不太會動態規劃,所以就在網上找了講解動態規劃思想的文章,發現了一篇講得很好很清晰的文章,鏈結在本文最開始已經給出了。總結來說,動態規劃就是為了解決這個問題,我們將它分解為幾個小問題,並且分解出來的...