当前位置: 首页 > news >正文

每日一题——两数之和

题目


给出一个整型数组 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.lryc.cn/news/112477.html

相关文章:

  • Maven: ‘mvn‘ is not recognized as an internal or external command
  • CubeSLAM: Monocular 3D Object SLAM——论文简述
  • 【雕爷学编程】MicroPython动手做(30)——物联网之Blynk 2
  • linux scp 拷贝文件到目标linux系统
  • Oracle-expdp报错ORA-39077、06502(Bug-16928674)
  • Kafka入门,保姆级教学
  • RabbitMQ 过期时间(TTL)
  • C 语言练习题、持续更新
  • Android Q以上后台启动Activity初步尝试
  • 【torchlars】windows下载github中的torchlars包遇到的问题及解决方案
  • SolidUI社区-通用Prompt技巧
  • C++中类的封装写出一个文件加密的小项目
  • 【网络编程·传输层】UDP和TCP的报头
  • C语言编程技巧 全局变量在多个c文件中公用的方法
  • 【HDFS】NN处理全量块汇报时reportDiff的一些细节
  • JVM之类加载与字节码(一)
  • 【数据结构OJ题】合并两个有序数组
  • 数据结构笔记--归并排序及其拓展题(小和问题、逆序对问题)
  • flutter开发实战-实现css线性渐变转换flutter渐变LinearGradient功能
  • python推理小游戏bagels
  • DBSCAN聚类
  • java+ssm美食推荐交流系统 7jsw7
  • 基于php雪花算法工具类Snowflake -来自chatGPT
  • 怎么加密文件夹才更安全?安全文件夹加密软件推荐
  • 知识分享和Tomcat简单部署press应用
  • 回归预测 | MATLAB实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元多输入单输出回归预测
  • 步入React前厅 - 组件和JSX
  • SpringBoot整合Sfl4j+logback的实践
  • IT 基础架构自动化
  • Docker入门——保姆级