每日一题——两数之和

题目


给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。
(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)

数据范围:2≤len(numbers)≤105 −10≤numbersi 0≤target≤109

要求:空间复杂度 O(n),时间复杂度 O(nlogn)

示例1

输入:
[3,2,4],6
返回值:
[2,3]
说明:
因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3]

示例2

输入:
[20,70,110,150],90
返回值:
[1,2]
说明:
20+70=90

思路


使用hashmap。遍历数组,如果没有 (target - 当前值) 就将当前数字存入hashmap,如果有,返回该数字下标即可。

解答代码


#include <unordered_map>
#include <vector>
class Solution {
public:/*** @param numbers int整型vector * @param target int整型 * @return int整型vector*/vector<int> twoSum(vector<int>& numbers, int target) {// write code herestd::vector<int> res;std::unordered_map<int, int> hash;for (int i = 0; i < numbers.size(); i++) {int tmp = target - numbers[i];auto it = hash.find(tmp);if (it != hash.end()) {// 在hash表中找到了res.push_back(it->second + 1);res.push_back(i + 1);break;} else {hash.emplace(numbers[i], i);}}return res;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/55778.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ceph入门到精通-远程开发Windows下使用SSH密钥实现免密登陆Linux服务器

工具&#xff1a; win10、WinSCP 服务器生成ssh密钥&#xff1a; 打开终端&#xff0c;使账号密码登录&#xff0c;输入命令 ssh-keygen -t rsa Winscp下载 Downloading WinSCP-6.1.1-Setup.exe :: WinSCP window 生成密钥 打开powershell ssh-keygen -t rsa 注意路径 …

ArcGIS Pro简介下载安装地址

ArcGIS Pro简介 ArcGIS Pro是一款功能强大的地理信息系统&#xff08;GIS&#xff09;软件&#xff0c;由Esri开发。它为用户提供了一种直观、灵活且高效的方式来处理、分析和可视化地理数据。ArcGIS Pro具有现代化的用户界面和工作流程&#xff0c;使用户能够更好地利用地理信…

【DDPM扩散模型】DDPM扩散模型公式推导

&#x1f525; &#x1f525; 【参考】轻松学习扩散模型&#xff08;diffusion model&#xff09;&#xff0c;被巨怪踩过的脑袋也能懂——原理详解pytorch代码详解&#xff08;附全部代码&#xff09; 纸上得来终觉浅&#xff0c;绝知此事要躬行。

Python实现GA遗传算法优化Catboost回归模型(CatBoostRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世…

IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介

系列文章目录 IDEA上面书写wordcount的Scala文件具体操作 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 目录 系列文章目录 前言 一 准备工作 1.1 安装Maven 1.1.1 Maven安装配置步骤 1.1.2 解压相关的软件包 1.1.3 Maven 配置环境变量 1.1.4 配…

leaflet-uniapp 缩放地图的同时 显示当前缩放层级

记录实现过程&#xff1a; 需求为移动端用户在使用地图时&#xff0c;缩放地图的同时&#xff0c;可以获知地图此时缩放的级别。 效果图如下&#xff1a;此时缩放地图级别为13 map.on() 有对应的诸多行为 查看官网即可&#xff0c;这里根据需要为--zoomstart zoom zoomend 代…

一款能“干掉” ChatGPT 的应用「GitHub 热点速览」

1. 本周特推 1.1 AI 专场 在这波 AI 热度消退之前&#xff0c;热点趋势的特推部分会增加一个模块来分享新的 AI 应用。 全能 GPT&#xff1a;Auto-GPT 主语言&#xff1a;Python New 这周很火的一个项目&#xff0c;收割了 52k star&#xff0c;Auto-GPT 的 Auto 本就有自…

Kafka介绍

目录 1&#xff0c;kafka简单介绍 2&#xff0c;kafka使用场景 3&#xff0c;kafka基本概念 kafka集群 数据冗余 分区的写入 读取分区数据 顺序消费 顺序消费典型的应用场景&#xff1a; 批量消费 提交策略 kafka如何保证高并发 零拷贝技术&#xff08;netty&#…

Ubuntu类IOS主题设置

1.依次执行下面三条命令&#xff1a; sudo apt install gnome-shell-extensions sudo apt install gnome-tweak-tool sudo apt install chrome-gnome-shell2.下载主题&#xff0c;也是命令&#xff1a; git clone <https://github.com/qingchendelaike/GNOME-OSX-II-Theme…

Lifecycle原理、源码解析

原理 观察者设计模式activity是被观察者。其他想知道activity生命周期状态的类是观察者 使用 被观察者继承LifecycleOwner&#xff08;AppCompatActivity已继承&#xff09;&#xff0c;观察者继承LifecycleObserver在被观察者中添加观察者到观察者列表。完成订阅关系 acti…

Web3技术入门向科普

Web3是指下一代互联网&#xff0c;它基于区块链技术&#xff0c;将各种在线活动更加安全、透明和去中心化。Web3是一个广义的概念&#xff0c;它包括了很多方面&#xff0c;如数字货币、去中心化应用、智能合约等等。在这篇文章中&#xff0c;我们将重点讨论Web3的入门知识&…

CentOS下ZLMediaKit的可视化管理网站MediaServerUI使用

一、简介 按照 ZLMediaKit快速开始 编译运行ZLMediaKit成功后&#xff0c;我们可以运行其合作开源项目MediaServerUI&#xff0c;来对ZLMediaKit进行可视化管理。通过MediaServerUI&#xff0c;我们可以实现在浏览器查看ZLMediaKit的延迟率、负载率、正在进行的推拉流、服务器…