求不相鄰的最大子陣列和

2021-09-24 15:13:03 字數 479 閱讀 6416

參考:

題目:給定乙個陣列a,求出一些數,使得每個元素在陣列a裡兩兩不相鄰,並且和最大。

選擇第i個元素,那麼第i-1個元素一定不能選

不選擇第i個元素,那麼第二個元素既可以選,也可以不選

#includeusing namespace std;

int main();

int selected[8];

int notselected[8];

selected[0] = input[0];

notselected[0]=0;

for(int i = 1; i < 8; i++)

for(int i = 0; i < 8;i++){

cout《或者

f[0] = max (0, input[0])

f[1] = max (input[1], f[0])

f[n] = max (f[n-2]+input[n], f[n-1])

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

對於乙個給定的陣列,在其中選取其子陣列,要求相鄰的元素不能選取,且要保證選出的子陣列元素和最大。輸入陣列長度及其元素,輸出所選子陣列的和。測試輸入 7 4 2 6 1 3 5 8 測試輸出 21dp i 代表到截至第i項的最大和 可能不包括第i項 分析 對於任何乙個dp問題,其都牽扯到選與不選某個元...

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

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

環形陣列求最大子陣列和

陣列是環形的,即首尾相接 下標n 1的元素後面的元素下標為0 求最大子陣列和 環形陣列求最大子陣列和 解法一 把該環形陣列從某一點展開,連寫兩遍 複製乙份接到自己後面 然後當成無環的陣列求最大子陣列和,但這裡要限制乙個條件,就是最大子陣列的長度不可以超過n,所以求的時候要注意判斷。例如 上圖中展開寫...