3 条题解
-
-2
`#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
- 上传者