GESP C++ 真题 · 逐题精解
首页 › C++六级真题 › 2026年9月 › 第14题

GESP 2026年9月 C++六级 单选题 第14题

C++六级单选题2026年9月第14题

所属知识点:一维动态规划 难度要求:— 考频:—

下面代码求从包含非负元素的数组中选择若干个互不相邻元素所能得到的最大和。横线处应填写(  )。
int maxSum(vector<int> &a) {
    int n = a.size();
    if (n == 0)
        return 0;
    if (n == 1)
        return a[0];
    vector<int> dp(n);
    dp[0] = a[0];
    dp[1] = max(a[0], a[1]);
    for (int i = 2; i < n; ++i)
        dp[i] = __________________________;
    return dp[n - 1];
}

正确答案:C

题目解析
第 i 个元素若不选则最大和为 dp[i-1],若选则不能选第 i-1 个,为 dp[i-2] + a[i],取两者较大值 max(dp[i - 1], dp[i - 2] + a[i])。正确答案 C。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习