leetcode 面試題 17 16 按摩師

2021-10-04 08:32:02 字數 1054 閱讀 6454

這道題其實和 leetcode—198.打家劫舍 是一樣的,典型的dp問題,dp[i]表示在第 i 個請求到來後的總預約時間。我們對於第 i 個預約請求有兩種選擇(接和不接),接的話則表示他是從第 i-2 個請求過來的(因為不能接相鄰的請求),不接的話其總預約時間不變(和dp[i-1]相同)。所以狀態轉移方程為dp(

i)=m

ax(d

p(i−

1),d

p(i−

2)+n

um(i

))dp(i)=max(dp(i-1),dp(i-2)+num(i))

dp(i)=

max(

dp(i

−1),

dp(i

−2)+

num(i))

int

massage

(vector<

int>

& nums)

; dp[0]

= nums[0]

; dp[1]

=max

(nums[1]

,dp[0]

);for(

int i =

2;i < n;i++

)return dp[n-1]

;}

以上**我們可以在空間上優化,我們每次只關心 dp[

i−1]

,dp[

i−2]

,dp[

i]dp[i-1],dp[i-2],dp[i]

dp[i−1

],dp

[i−2

],dp

[i] 這個值,所以我們只需要三個變數即可,而不需要乙個dp陣列。

int

massage

(vector<

int>

& nums)

return c;

}

leetcode 面試題17 16 按摩師

乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 1,2,3,1 輸出 4 解釋 選擇 1 號預...

LeetCode動態規劃 面試題17 16按摩師

乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 1,2,3,1 輸出 4 解釋 選擇 1 號預...

LeetCode 面試題 17 16 按摩師

leetcode 面試題 17.16.按摩師 乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合 總預約時間最長 返回總的分鐘數。注意 本題相對原題稍作改動 示例 1 輸入 ...