動態規劃解按摩師的最長預約時間

2022-02-13 04:39:27 字數 1251 閱讀 7086

一名有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或者不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰時間的預約。

給定乙個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。

示例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[length][2],其中dp[i][0]表示第i+1個預約沒有接的最長總預約時間,dp[i][1]表示的是第i+1個預約接了的最長總預約時間。

#include #include #include using namespace std;

int main()

; //int len = sizeof(arr)/sizeof(arr[0]);

int n=0;

cout<<"序列長度:";

cin >> n;

int arr[n];

cout<<"序列:";

for(int i=0;i>arr[i];

}int len = n;

int dp[len][2];

dp[0][0] = 0;

dp[0][1] = arr[0];

for(int i=1;i例項2:動態規劃dp**02

711112

711911

LeetCode 34 按摩師 動態規劃

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

每日一題系列 第五天 按摩師 動態規劃

資料鏈結 寫的很好,推薦看一看 一開始看到這道題,要求最優解,我就想到了動態規劃,但是因為本人比較菜,還不太會動態規劃,所以就在網上找了講解動態規劃思想的文章,發現了一篇講得很好很清晰的文章,鏈結在本文最開始已經給出了。總結來說,動態規劃就是為了解決這個問題,我們將它分解為幾個小問題,並且分解出來的...

新墨斯智慧型鞋就是您的足底按摩師

社會的發展,科技的進步,高科技智慧型產品給人們帶來了高科技的享受。不怕別人做不到,就怕你自己想不到。但是,傳統的運動鞋的功能特徵,主要是滿足人們進行體育運動 健身或是散步休閒之用。2018 ces 正在如火如荼進行中,展會上各種黑科技,手機 電器 無人機無人車,智慧型家居,吸引了無數目光。但在此之外...