给定一个整数数组 a,要求选择若干个不相邻元素使总和最大。函数 choose 返回最大总和,则横线处应填写
int choose(vector<int>& a){
if(a.empty()) return 0;
int n= a.size();
if(n== 1) return a[0];
vector<int> dp(n, 0);
dp[0]= a[0];
dp[1]= max(a[0], a[1]);
for(int i= 2; i< n;++i){
dp[i]=__________________________;
}
return dp[n- 1];
}
dp[i- 1]+ a[i]
max(dp[i- 1], dp[i- 2]+ a[i])
max(dp[i- 2], a[i])
dp[i- 1]+ dp[i- 2]