乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。注意:本題相對原題稍作改動
示例 1:
輸入: [1,2,3,1]
輸出: 4
解釋: 選擇 1 號預約和 3 號預約,總時長 = 1 + 3 = 4。
1.暴力dfs列舉每個數字選不選
2.dp, dp[i]=max(nums[i]+dp[i-2],dp[i-1])
class solution:
def massage(self, nums: list[int]) -> int:
res=0
def dfs(i,s,tmp):
nonlocal res
if i>=len(nums):
res=max(res,s)
return
dfs(i+1,s,tmp)
if i==0 or i-1 not in tmp:
dfs(i+1,s+nums[i],tmp+[i])
dfs(0,0,)
return res
class solution:
def massage(self, nums: list[int]) -> int:
if not nums:return 0
dp=[0 for _ in range(len(nums))]
for i in range(len(nums)):
if i==0:
dp[i]=nums[i]
elif i==1:
dp[i]=max(nums[0],nums[1])
else:
dp[i]=max(dp[i-1],nums[i]+dp[i-2])
return dp[-1]
面試題17,16 按摩師
乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 1,2,3,1 輸出 4 解釋 選擇 1 號預...
面試題 17 16 按摩師
題目 乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 1,2,3,1 輸出 4 解釋 選擇 1...
面試題 17 16 按摩師
題目 乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數 解法 動態規劃 思路 數學符號 dp i 表示到達位置i的最長時間 狀態轉移方程 對...