面試題 17 16 按摩師(C )

2022-07-31 00:15:16 字數 955 閱讀 4394

目錄乙個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定乙個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。

示例 1:

輸入: [1,2,3,1]

輸出: 4

解釋: 選擇 1 號預約和 3 號預約,總時長 = 1 + 3 = 4。

示例 2:

輸入: [2,7,9,3,1]

輸出: 12

解釋: 選擇 1 號預約、 3 號預約和 5 號預約,總時長 = 2 + 9 + 1 = 12。

示例 3:

輸入: [2,1,4,5,3,1,1,3]

輸出: 12

解釋: 選擇 1 號預約、 3 號預約、 5 號預約和 8 號預約,總時長 = 2 + 4 + 3 + 3 = 12。

我們先設定狀態dp,其中dp[i]表示截止到nums[i]服務,所求得的最長服務時間,dp[i-1]可以有兩種方式,預約nums[i-1]的稱為dp1和不預約nums[i-1]的稱為dp0。對於當前服務nums[i]只有預約和不預約兩種狀態,分別討論:

class solution 

return dp[size -1];

}};

通過上述對於狀態方程的討論,本質上狀態dp[i]之和三個數值相關聯:dp0dp1nums[i]。我們嘗試使用三個常量返回更新來實現陣列的效果。**如下:

class solution 

return dp[size-1];

}};

面試題17,16 按摩師

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

面試題 17 16 按摩師

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

面試題 17 16 按摩師

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