maximum sum non adjacent elements
- 問題描述:
給定一個數組,找出一個子序列,使得該子序列元素都不相鄰,且和最大。
如:[4,1,1,4,2,1]的最大值爲9。
代碼:
#include <stdio.h>
#include <vector>
using namespace std;
int MSNAE(vector<int>& nums) {
int len = nums.size();
if (len==0) {
return 0;
}
int incl = nums[0];
int excl = 0;
for (int i=1; i<len; i++) {
int temp = incl;
incl = max(excl+nums[i], incl);
excl = temp;
}
return incl;
}
int main(int argc, const char * argv[]) {
vector<int> test = {4,1,1,4,2,1};
int ans = MSNAE(test);
printf("%d\n", ans);
return 0;
}