GESP C++ 真题 · 逐题精解
首页C++八级真题 › 2025年6月 › 第14题

GESP 2025年6月 C++八级 单选题 第14题

C++八级单选题2025年6月第14题

所属知识点:各类算法复杂度 难度要求:掌握 考频:中频

下面用二分优化的 LIS 函数的时间复杂度为:
int LIS(vector<int> & nums) {
    int n = nums.size();
    vector<int> tail; tail.push_back(INT_MIN);
    for (int i = 0; i < n; i++) {
        int x = nums[i], l = 0, r = tail.size();
        while (l < r) {
            int mid = (l + r) / 2;
            if (tail[mid] < x) l = mid + 1; else r = mid;
        }
        if (r == tail.size()) tail.push_back(x); else tail[r] = x;
    }
    return tail.size() - 1;
}

正确答案:C

题目解析

对每个元素在 tail 数组上二分查找插入位置 O(log n),共 n 个………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

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

进入 GESPPASS 开始练习