一名有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或者不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰時間的預約。
給定乙個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。
示例1
輸入[1,2,3,1]示例2輸出4
解釋選擇1號和3號預約,總時長1+3=4
輸入[2,7,9,3,1]示例3輸出12
解釋選擇1、3、5號預約,總時長2+9+1=12
輸入[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 正在如火如荼進行中,展會上各種黑科技,手機 電器 無人機無人車,智慧型家居,吸引了無數目光。但在此之外...