#include<iostream> #include<vector> #include<unordered_map> using namespace std; pair<int, int> gettwonums(vector<int>& A,const int& K) { unordered_map<int,int> res; res.rehash(A.size() * 2); for (auto &a : A) { auto ret=res.insert({ a,1 }); if (ret.second == false) (ret.first)->second++; } for (auto a :res) { auto ret = res.insert({ K - a.first,1 }); if (ret.second == false) { if (2 * a.first == K&&a.second > 1) return make_pair(a.first, K - a.first); else if (2 * a.first != K) return make_pair(a.first, K - a.first); } } return make_pair(0,0); } int main() { vector<int> A = { 5,8,6,7,9}; auto a = gettwonums(A, 10); cout << a.first << " " << a.second; system("pause"); } 输出2,8.。。。。不知道为啥
点赞 2
牛客网
牛客网在线编程
牛客网题解
牛客企业服务