不相鄰子串行最大和

2021-07-27 09:28:53 字數 671 閱讀 4781

#include 

#include

using

namespace

std;

int msnae(vector

& nums)

int incl = nums[0]; //incl表示當可以包含nums[i]時,前i個元素所能達到的最大值;初始化為第乙個元素

int excl = 0; //excl表示不包含第nums[i]時,前i個元素所能達到的最大值;初始化為0;

for (int i=1; iint temp = incl;

incl = max(excl+nums[i], incl); //更新incl;1.不包含前乙個元素,包括本元素(excl+nums[i]);2. 不包括本元素(incl)的較大值

excl = temp; //excl跟新為可能包括前乙個元素的值(一定不包括i所指元素)

}return incl;

}int main(int argc, const

char * argv) ;

int ans = msnae(test);

printf("%d\n", ans);

return

0;}

不相鄰最大和

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

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

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

連續子串行最大和

這道題目使用最大和問題的分治演算法 package com.divide.cc author sunnyboy runtime is o nlogn public class sumsequence int maxsum maxsubsequencesum a system.out.println ...