题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1470
第 31 题
下面代码实现 0/1 背包的一维动态规划。第 i 个物品重量为 wt[i] ,价值为 val[i] ,背包容量为 W 。横线处应填写( )。
int knapsack(int W, vector<int>& wt, vector<int>& val) {
    int n = wt.size();
    vector<int> dp(W + 1, 0);

    for (int i = 0; i < n; ++i) {
        for (int w = W; w >= wt[i]; --w) {
            __________________________
        }
    }

    return dp[W];
}
A
dp[w] = max(dp[w], dp[w - wt[i]] + val[i]);
B
dp[w] = max(dp[w - 1], dp[w - wt[i]] + val[i]);
C
dp[w] = dp[w] + val[i];
D
dp[w - wt[i]] = max(dp[w], val[i]);
语言: C++
GESP真题 六级
2026.6
单选题号: 15
EXY-SC-1469
第 32 题
给定一个整数数组 a ,每个元素表示一个位置上的数值。要求从数组中选择若干个元素,使得任意两个被选择的元素在原数组中都不相邻,并且所选元素的总和最大。函数 choose(vector& a) 返回能够得到的最 大总和,则横线处应填写( )。
int choose(vector<int>& a) {
    if (a.empty()) return 0;

    int n = a.size();
    if (n == 1) return a[0];

    vector<int> dp(n, 0);
    dp[0] = a[0];
    dp[1] = max(a[0], a[1]);

    for (int i = 2; i < n; ++i) {
        dp[i] = __________________________;
    }

    return dp[n - 1];
}
A
dp[i - 1] + a[i]
B
max(dp[i - 1], dp[i - 2] + a[i])
C
max(dp[i - 2], a[i])
D
dp[i - 1] + dp[i - 2]
语言: C++
GESP真题 六级
2026.6
单选题号: 14
EXY-SC-1468
第 33 题
下面代码实现二叉搜索树的插入操作。假设树中不存在重复值,横线处应填写( )。
TreeNode* insertNode(TreeNode* root, int x) {
    if (root == nullptr) {
        return new TreeNode(x);
    }

    if (x < root->val) {
        __________________________
    } else {
        root->right = insertNode(root->right, x);
    }

    return root;
}
A
root->left = insertNode(root->left, x);
B
root = insertNode(root->left, x);
C
root->right = insertNode(root->left, x);
D
insertNode(root->left, x);
语言: C++
GESP真题 六级
2026.6
单选题号: 13
EXY-SC-1467
第 34 题
给定一棵二叉树,采用广度优先搜索 BFS 返回其右视图,其中右视图中的每个节点都是该层最右侧的节点。横线处应填写( )。
vector<int> rightSideView(TreeNode* root) {
    vector<int> result;
    if (!root) return result;

    queue<TreeNode*> q;
    q.push(root);

    while (!q.empty()) {
        int sz = q.size();
        for (int i = 0; i < sz; ++i) {
            TreeNode* node = q.front();
            q.pop();

            __________________________

            if (node->left) q.push(node->left);
            if (node->right) q.push(node->right);
        }
    }

    return result;
}
A
if (i == 0) result.push_back(node->val);
B
if (i == sz - 1) result.push_back(node->val);
C
result.push_back(q.front()->val);
D
if (node->right) result.push_back(node->right->val);
语言: C++
GESP真题 六级
2026.6
单选题号: 12
EXY-SC-1466
第 35 题
在格雷码中,相邻两个编码只能有一位不同。若当前编码为 110 ,则它的下一个编码不可能是( )。
A
010
B
111
C
100
D
001
语言: C++
GESP真题 六级
2026.6
单选题号: 11
当前页显示 31 - 35 ,共 1260 道单选题