C++ 实现从数组中找出a+b=c+d的两个数对
//找出数组中是否有两个对数(a,b)和(c,d)使 a+b=c+d ,其中 a,b,c,d 是不同元素。比如: {1, 9, 23, 3, 33, 7}; 1+9 = 3+7// 分析:如果使用四重循环的话时间复杂度为O(N ^ 4) ,时间复杂度太高。//下面是使用 Hash 法,通过存数对的和在哈希表中,判断是否已经存储过相同的和 bool findPairs(vector<int> arr) { unordered_map <int, std::pair<i.
原创
2021-07-18 20:31:45 ·
757 阅读 ·
0 评论