题目编号
语言
全部语言
等级
全部等级
知识点
选择知识点 (0)
找到 1260 道单选题
EXY-SC-1245
第 256 题
在哈希表的实现中,冲突解决是一个重要的问题。以下哪种方法 不是 常见的哈希表冲突解决策略?
A
链地址法(Chaining)
B
开放地址法(Open Addressing)
C
二次哈希法(Double Hashing)
D
二分查找法(Binary Search)
语言: C++
GESP真题 七级
2025.3
单选题号: 15
EXY-SC-1244
第 257 题
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。下面横线处应该填入的是( )
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int maxSubArray(vector<int>& nums) {
    int n = nums.size();
    if (n == 0) return 0;
 
    vector<int> dp(n, 0);
    dp[0] = nums[0];
    int maxSum = dp[0];
 
    for (int i = 1; i < n; i++) {
        ___________________
        maxSum = max(maxSum, dp[i]);
    }
 
    return maxSum;
}
 
int main() {
    int n;
    cin >> n;
 
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }
 
    int result = maxSubArray(nums);
    cout << result << endl;
 
    return 0;
}
A
dp[i] = max(nums[i+1], dp[i - 1] + nums[i]);
B
dp[i] = max(nums[i], dp[i - 1] + nums[i]);
C
dp[i] = max(nums[i], dp[i + 1] + nums[i]);
D
dp[i] = max(nums[i], dp[i - 1] + nums[i+1]);
语言: C++
GESP真题 七级
2025.3
单选题号: 14
EXY-SC-1243
第 258 题
给定一个 $m \times n$ 的二维网格 grid,每个格子中有一个非负整数。请找出一条从左上角 $(0, 0)$ 到右下角 $(m-1, n-1)$ 的路径,使得路径上的数字总和最小。每次只能向右或向下移动。横线处应该填入的是( )
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int minPathSum(vector<vector<int>>& grid) {
    int m = grid.size();
    int n = grid[0].size();
 
    vector<vector<int>> dp(m, vector<int>(n, 0));
 
    dp[0][0] = grid[0][0];
    for (int j = 1; j < n; j++) {
        dp[0][j] = dp[0][j - 1] + grid[0][j];
    }
    for (int i = 1; i < m; i++) {
        dp[i][0] = dp[i - 1][0] + grid[i][0];
    }
    for (int i = 1; i < m; i++) {
        for (int j = 1; j < n; j++) {
            ___________________
        }
    }
    return dp[m - 1][n - 1];
}
 
int main() {
    int m, n;
    cin >> m >> n;
    vector<vector<int>> grid(m, vector<int>(n));
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            cin >> grid[i][j];
        }
    }
 
    int result = minPathSum(grid);
    cout << result << endl;
 
    return 0;
}
A
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][1];
B
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
C
dp[i][j] = min(dp[i - 1][j], dp[i][j]) + grid[i][j];
D
dp[i][j] = min(dp[i][j], dp[i][j - 1]) + grid[i][j];
语言: C++
GESP真题 七级
2025.3
单选题号: 13
EXY-SC-1242
第 259 题
给定两个无向图 $G_1,G_2$,判断它们是否同构。图的同构是指两个图的节点可以通过某种重新编号的方式完全匹配,且边的连接关系一致。为了简化问题,假设图的节点编号从 $0$ 到 $n-1$,并且图的边以邻接表的形式给出。下面程序中横线处应该给出的是( )。
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
 
string graphHash(vector<vector<int>>& graph) {
    vector<string> nodeHashes(graph.size());
    for (int i = 0; i < graph.size(); i++) {
        vector<int> neighbors = graph[i];
        sort(neighbors.begin(), neighbors.end());
        string hash;
        for (int neighbor : neighbors) {
            // 在此处填入代码
        }
        nodeHashes[i] = hash;
    }
    sort(nodeHashes.begin(), nodeHashes.end());
    string finalHash;
    for (string h : nodeHashes) {
        finalHash += h + "*";
    }
    return finalHash;
}
 
int main() {
    int n;
    cin >> n;
 
    vector<vector<int>> G1(n);
    for (int i = 0; i < n; i++) {
        while (cin >> k) {
            G1[i].push_back(k);
            if (cin.get() == '\n') break;
        }
    }
 
    vector<vector<int>> G2(n);
    for (int i = 0; i < n; i++) {
        while (cin >> k) {
            G2[i].push_back(k);
            if (cin.get() == '\n') break;
        }
    }
 
    string hash1 = graphHash(G1);
    string hash2 = graphHash(G2);
 
    if (hash1 == hash2) {
        cout << "YES" << endl;
    } else {
        cout << "NO" << endl;
    }
 
    return 0;
}
A
hash += to_string(neighbor);
B
hash += to_string(neighbors);
C
hash += to_string(neighbor) + ",";
D
hash -= to_string(neighbors);
语言: C++
GESP真题 七级
2025.3
单选题号: 12
EXY-SC-1241
第 260 题

给定一个整数数组 nums,找到其中最长的严格上升子序列的长度。子序列是指从原数组中删除一些元素(或不删除)后,剩余元素保持原有顺序的序列。该程序的时间复杂度为( )

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int lengthOfLIS(vector<int>& nums) {
    int n = nums.size();
    if (n == 0) return 0;
    vector<int> dp(n, 1);
 
    for (int i = 1; i < n; i++) {
        for (int j = 0; j < i; j++) {
            if (nums[i] > nums[j]) {
                dp[i] = max(dp[i], dp[j] + 1);
            }
        }
    }
    return *max_element(dp.begin(), dp.end());
}
 
int main() {
    int n;
    cin >> n;
    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }
 
    int result = lengthOfLIS(nums);
    cout << result << endl;
 
    return 0;
}
A

$O(n^2)$

B

$O(n)$

C

$O(\log(n))$

D

$O(n\log(n))$

语言: C++
GESP真题 七级
2025.3
单选题号: 11
当前页显示 256 - 260 ,共 1260 道单选题