小朋友们去邻里拜年,每个家里有不同数量的糖果。规则是:不能连续进入两个相邻的房子(即不能同时取相邻两家的糖果)。目标是拿到最多糖果。以下代码实现,请补全横线。
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];
}
- A.
dp[i] = dp[i - 1] + nums[i]; - B.
dp[i] = max(dp[i - 1], dp[i - 2] * nums[i]); - C.
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]); - D.
dp[i] = dp[i - 2] + nums[i];