📜  C ++程序查找具有给定差异的对(1)

📅  最后修改于: 2023-12-03 14:39:39.391000             🧑  作者: Mango

C++程序查找具有给定差异的对

开发一个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;
}
使用方法
  1. 将需要查找的整数存储在一个vector类型的变量中;
  2. 指定差异值,作为第二个参数传递给findPairs函数;
  3. findPairs函数返回一个存储了所有符合条件的数对的vector<pair<int, int>>类型变量,可以使用循环遍历每一个数对,并将结果输出。