3 条题解

  • -2
    @ 2025-4-20 18:37:39

    `#include #include #include #include <unordered_map>

    int lengthOfLIS(std::vector& nums) { std::vector lis; for (int num : nums) { auto it = std::lower_bound(lis.begin(), lis.end(), num); if (it == lis.end()) { lis.push_back(num); } else { *it = num; } } return lis.size(); }

    int main() { int n; std::cin >> n;

    std::vector<int> a(n);
    std::vector<int> b(n);
    
    for (int i = 0; i < n; ++i) {
        std::cin >> a[i];
    }
    for (int i = 0; i < n; ++i) {
        std::cin >> b[i];
    }
    
    std::unordered_map<int, int> pos;
    for (int i = 0; i < n; ++i) {
        pos[a[i]] = i;
    }
    
    std::vector<int> new_b;
    for (int num : b) {
        if (pos.find(num) != pos.end()) {
            new_b.push_back(pos[num]);
        }
    }
    
    int result = lengthOfLIS(new_b);
    std::cout << result << std::endl;
    
    return 0;
    

    } `

    信息

    ID
    3260
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    67
    已通过
    18
    上传者