第21239题 单选
判断以下C++动态规划函数的含义与目的是什么?
int function(vector<int>& nums) {
  int n = nums.size();
  if (n == 0)
    return 0;
  if (n == 1)
    return nums[0];
  vector<int> dp(n, 0);
  dp[0] = nums[0];
  dp[1] = max(nums[0], nums[1]);
  for (int i = 2; i < n; ++i) {
    dp[i] = max(dp[i - 1], nums[i] + dp[i - 2]);
  }
  return dp[n - 1];
}
A

计算数组nums中的所有元素的和

B

计算数组nums中相邻元素的最大和

C

计算数组nums中不相邻元素的最大和

D

计算数组nums中的最小元素