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

力扣1.两数之和

原题链接:1.两数之和

根据题意可以得出 需要找出数组nums内 有两个元素相加等于target的两个整数,并且返回这两个证书的下标。并且数组内有重复元素,但是返回的答案不能有重复元素出现

要记住的就是,需要判断元素是否出现过,或者是否在集合里存在,就可以考虑用哈希法去做

使用什么方法,为什么使用?

可以使用hash法,因为要根据值返回下标,可以理解为根据key返回value,键值对
所以也使用map,又因为是需要查询,在时间复杂度上,就是用以哈希表为底层的unordered_map容器。
map主要用来去重 以及到时候返回需要查找的值相应的下标
本题中key用来存储需要的差值,而value用来存储下标

思路
只需要遍历nums,然后从nums[i]开始计算target - nums[i]得出差值 再到unordered_map中查询是否有需要的差值
如果没有,则将numsi和i(下标)存入unordered_map 中,等待下次查询
如果有,则代表map->scond为需要的差值,而i为差值的下标,返回{map->scond,i }即可
map ->scond 为该元素的值,map ->fast为该元素的键

代码:

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {std::unordered_map <int,int> map;for(int i = 0; i < nums.size(); i++){int s = target - nums[i];auto item = map.find(s);//存在返回元素的迭代器,不存在则返回map.end()if(item == map.end()){//差值不存在于map里面,代表未出现过,则将nums[i]的值和下标存入map中map.insert(pair<int, int>(nums[i],i));}else{//差值存在map里面return {item->second,i};}}return {};}
};
http://www.lryc.cn/news/216179.html

相关文章:

  • JTA分布式事务管理器
  • 晨控CK-GW08系列网关控制器与CODESYS软件MODBUSTCP通讯手册
  • 读书笔记——labuladong算法笔记
  • Linux中阶教程:bash shell基础
  • Golang 编译原理
  • 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别 计算机竞赛
  • 计算机视觉基础——基于yolov5-face算法的车牌检测
  • 【好书推荐】AI时代架构师修炼之道:ChatGPT让架构师插上翅膀
  • 全局代理和局部代理的区别
  • 基于EPICS stream模块的直流电源的IOC控制程序实例
  • Unity3D ECS架构适合作为主架构还是局部架构
  • 从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型
  • Qt6 中弹出消息框,一段时间后自动退出
  • elementUI树节点全选,反选,半选状态
  • Kafka、RabbitMQ、RocketMQ中间件的对比
  • Mac 创建并使用 .zshrc 文件
  • Unity3D移动开发如何依据性能选择Shader
  • 基于stm32F4的智能宠物喂食器的设计:LVGL界面、定时喂食喂水通风
  • jumpserver堡垒机docker方式安装部署
  • 在基于亚马逊云科技的湖仓一体架构上构建数据血缘的探索和实践
  • VScode clangd 插件浏览 linux 源码
  • GZ035 5G组网与运维赛题第8套
  • 《golang设计模式》第三部分·行为型模式-02-命令模式(Command)
  • 【linux进程控制(一)】进程终止--如何干掉一个进程?
  • 言情小说怎么推广?如何推广网络小说?
  • TensorFlow 的应用场景有哪些
  • JAVA提取嵌套夹带文件之Apache Tika
  • SSL数字证书服务
  • 浅谈安科瑞直流电表在荷兰光伏充电桩系统中的应用
  • 淘宝详情API接口怎么实现大数据分析和商品价格监控