华为机试题 :两数之和

题目描述

给定一个整数数组 nums 和一个目标值 target,请你在数组中找出和为目标值的两个整数,并输出它们的下标。

假设每种输入只会对应一个答案,且不能重复使用同一个元素。

输入描述

第一行输入一个整数 n,表示数组长度。

第二行输入 n 个整数,表示数组 nums。

第三行输入一个整数 target。

输出描述

输出两个下标,按从小到大顺序输出,中间用空格分隔。

如果不存在,输出 -1。

示例 1

输入

text

复制代码
4
2 7 11 15
9

输出

text

复制代码
0 1

C++ 解法

cpp

复制代码
#include <bits/stdc++.h>
using namespace std;

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

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

    int target;
    cin >> target;

    unordered_map<int, int> mp;

    for (int i = 0; i < n; i++) {
        int need = target - nums[i];

        if (mp.count(need)) {
            cout << mp[need] << " " << i << endl;
            return 0;
        }

        mp[nums[i]] = i;
    }

    cout << -1 << endl;
    return 0;
}
相关推荐
C^h3 小时前
c++ string
开发语言·c++
raindayinrain4 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的4 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao4 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
小徐不徐说5 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
大都督会赢的5 小时前
C++第一节课
开发语言·c++
UIU1145 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
论文复现现场5 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
ZhengEnCi6 小时前
用 AI 写代码为什么拼到最后还是拼人:算力瓶颈与领域专家提示词的本质差异
算法·架构
TMedical6 小时前
MedPlanning 截骨模拟矫形功能
c++·图像处理·人工智能·qt·健康医疗