weixin_53185809 2023-08-17 09:01 采纳率: 90.9%
浏览 7
已结题

关于#算法#的问题,请解答

给定一个长度为n的序列a1,a2,……,an,以及一个整数x,请找到一组i,j,满足:
1.1≤i,j≤n
2.ai-aj=x
输入输出格式
输入
第一行两个整数n和x
第二行n个整数ai
输出
一行,两个整数和j,空格分开。
保证答案存在,如果有多组答案满足条件,输出任意一组即可。

WA了一个点,看看我的代码,并改正


```c++
#include <iostream>
#include <unordered_map>
#include <vector>

using namespace std;

pair<int, int> findPair(vector<int>& nums, int target) {
    unordered_map<int, int> numIndex;
    for (int i = 0; i < nums.size(); i++) {
        int complement = nums[i] - target;
        if (numIndex.count(complement) > 0) {
            return make_pair(numIndex[complement] + 1, i + 1);
        }
        numIndex[nums[i]] = i;
    }

    return make_pair(-1, -1);  // 序列中不存在满足条件的元素
}

int main() {
    int n, x;
    cin >> n >> x;

    vector<int> nums(n);
    for (int i = 0; i < n; i++) {
        cin >> nums[i];
    }

    pair<int, int> result = findPair(nums, x);

    if(nums[result.first]-nums[result.second]==x)
            cout << result.first << " " << result.second << endl;
    else if(nums[result.first]-nums[result.second]!=x)
            cout << result.second << " " << result.first << endl;
    return 0;
}

```

  • 写回答

2条回答 默认 最新

  • flower980323 2023-08-17 10:01
    关注

    WA了一个点是什么意思
    i和j可以相等吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 已采纳回答 8月17日
  • 创建了问题 8月17日

悬赏问题

  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)
  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来