面試題 17 16 按摩師

2022-07-09 11:27:13 字數 905 閱讀 7257

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

解法:動態規劃

思路:數學符號:dp[i]表示到達位置i的最長時間;狀態轉移方程:對於任意乙個》=3的i,dp[i] = math.max(dp[i-2],dp[i-3])+nums[i](或者說dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]);

**:class solution

if(nums.length1)

if(nums.length==2)

int len = nums.length;

int dp = new int[len]; //dp[i]表示到達位置i的最長時間

dp[0] = nums[0];

dp[1] = nums[1];

dp[2] = nums[0]+nums[2];

for(int i=3;i優化空間複雜度:

class solution

if(nums.length1)

if(nums.length==2)

int len = nums.length;

int a = nums[0];

int b = nums[1];

int c = nums[0]+nums[2];

for(int i=3;i思路二:數學符號:定義dp[i][0],dp[i][1],其中dp[i][0]表示第i個不接,dp[i][1]表示第i個接;狀態轉移方程:dp[i][0]=max(dp[i−1][0],dp[i−1][1]),dp[i][1]=dp[i−1][0]+nums[i],最後答案即為max(dp[n][0],dp[n][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 號預...