小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下是代码实现,请补全横线。
int visit(vector< int>& nums) {
if (nums. empty()) {
return 0;
}
int size = nums. size();
if (size == 1) {
return nums[0];
}
vector< int> dp = vector< int>(size, 0);
dp[0] = nums[0];
dp[1] = max(nums[0], nums[1]);
for (int i = 2; i < size; i++) {
dp[i] = ; // 在此处填写代码
}
return dp[size - 1];
}
dp[i-1]
nums[i]
max(dp[i-1], dp[i-2] + nums[i])
max(dp[i-2], dp[i-1] + nums[i])