以下动态规划算法的含义与目的是( )。
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];
}仔细审题,明确已知条件和所求目标,运用相关知识点逐项分析。
审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。
【考点】动态规划|状态定义|转移方程
GESP六级核心考点:动态规划基础。命题人卡住的是那些只会写简单DP或贪心、但不懂状态转移方程本质的学生——六级不再考"能不能用DP",而是考"DP方程怎么构造"。