📅  最后修改于: 2023-12-03 14:39:39.391000             🧑  作者: Mango
开发一个C++程序,可以针对给定的一组整数,查找并返回两个数之间的差异为指定值的所有可能对。
本程序使用了暴力枚举法,时间复杂度为O(n^2),可以找到所有可能的差异为指定值的数对。
#include <iostream>
#include <vector>
using namespace std;
vector<pair<int, int>> findPairs(vector<int>& nums, int target) {
vector<pair<int, int>> pairs;
int n = nums.size();
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (nums[i] - nums[j] == target || nums[j] - nums[i] == target) {
pairs.push_back(make_pair(nums[i], nums[j]));
}
}
}
return pairs;
}
int main() {
vector<int> nums = { 5, 3, 1, 4, 2 };
int target = 2;
vector<pair<int, int>> pairs = findPairs(nums, target);
for (int i = 0; i < pairs.size(); i++) {
cout << "(" << pairs[i].first << ", " << pairs[i].second << ")" << endl;
}
return 0;
}