元素互不相鄰的最大和子陣列

2022-05-17 21:53:20 字數 689 閱讀 6285

對於乙個給定的陣列,在其中選取其子陣列,要求相鄰的元素不能選取,且要保證選出的子陣列元素和最大。輸入陣列長度及其元素,輸出所選子陣列的和。

測試輸入 

7 4 2 6 1 3 5 8

測試輸出 

21dp[i]代表到截至第i項的最大和(可能不包括第i項)

分析:對於任何乙個dp問題,其都牽扯到選與不選某個元素的問題,當你選擇a[i]作為最大和的一部分的時候,最大和就是dp[i-2]+a[i],如果不選擇a[i],那麼最大和就是到dp[i-1];

所以真正的最大和就是以上兩種情況進行比較選擇最大的。

**如下:

#include using

namespace

std;

int dp[100];//

dp[i]代表到截至第i項的最大和(可能不包括第i項)

intmain();

inti;

dp[0]=a[0

]; dp[

1]=max(a[0],a[1

]);

for(i=2;i<7;i++)cout

<6

];

return0;

}

不相鄰子串行最大和

include include using namespace std int msnae vector nums int incl nums 0 incl表示當可以包含nums i 時,前i個元素所能達到的最大值 初始化為第乙個元素 int excl 0 excl表示不包含第nums i 時,前i...

不相鄰最大和

description n個數的序列,選出任意個,要求不能相鄰,求不相鄰的最大和。input 第一行是乙個正整數 n。第二行是n 個用空格隔開的正整數。output 只有乙個正整數,為不相鄰的最大和。sample input 53 10 8 20 21 sample output 325 n 100...

陣列不相鄰元素之和的最大值

今天下午面試老虎 被問到這題,當時腦子有點蒙,沒寫出來。這題的意思就是給你乙個陣列,讓你計算元素的和,但是這些元素都不能相鄰,求最大的和。其實這題很常見,在leetcode上面也有,但是原題是這樣的 假設你是乙個專業的竊賊,準備沿著一條街打劫房屋。每個房子都存放著特定金額的錢。你面臨的唯一約束條件是...