华为机试题 :两数之和

题目描述

给定一个整数数组 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;
}
相关推荐
默默开发1 小时前
物流行业可用算法方向
算法
个 人 练 习 生1 小时前
C++ string 类模拟实现:从底层理解字符串(上)
开发语言·c++·经验分享·学习·程序人生
垆边人似月.1 小时前
华为机试题 :有效的括号
c++·算法·华为
坤坤子吖1 小时前
C++智能指针:RAII、shared_ptr与内存泄漏
开发语言·c++·笔记·学习
A加ITIL教练长河achotsao2 小时前
ITIL Master 战略领导者课后系列分享:AI编程正在重新划分研发与运维的边界
算法
hahaha60162 小时前
FPGA+ARM实现AWB的全流程
人工智能·嵌入式硬件·算法·计算机视觉·fpga开发
李洱2 小时前
LangChain 和 LangGraph 的区别:核心原理与使用场景
算法
夏幻灵2 小时前
每日一题:LeetCode 206:反转链表——三指针与原地反转详解
算法·leetcode·链表
神仙别闹2 小时前
基于C++实现的贪吃蛇游戏平台
java·c++·游戏