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

哈希表两数求和

leetcode题目链接 

这道题思路可以说easy 首先想到的就是两层for循环

代码如下

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int>result;int length=nums.size();for(int i=0;i<length;++i){for(int j=i+1;j<length;++j){if(nums[i]+nums[j]==target){result.push_back(i);result.push_back(j);}}}return result;}
};

但是这样写太漏了,时间复杂度太高,其实可以利用哈希表O(1)的存储复杂度来解决这道题

代码如下:


std::vector<int> twoSum(std::vector<int>& nums, int target) {std::unordered_map<int, int> num_map; // 创建哈希表for (int i = 0; i < nums.size(); ++i) {int complement = target - nums[i];// 检查哈希表中是否存在补数if (num_map.find(complement) != num_map.end()) {return {num_map[complement], i}; // 返回找到的下标}// 将当前数和下标存入哈希表num_map[nums[i]] = i;}return {}; // 如果没有找到,返回空
}

这里计算目标值与当前值的差值,如果差在哈希表中存在则找到了。

关键是知道nums_map[nums[i]]=i,这种值和键绑定的写法。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot-读取配置文件方式
  • 智能学习辅助系统——后端部分
  • zigbee笔记、十五、组播通信原理
  • 【60天备战2024年11月软考高级系统架构设计师——第0天:详细规划与学习心得】
  • 为什么需要对即将上线的系统进行压力测试
  • Vue——认识day02
  • 力扣刷题--2185. 统计包含给定前缀的字符串【简单】
  • 虚幻引擎UE5入坑记
  • 2024Android面试题与答案(2)
  • 三种tcp并发服务器实现程序
  • 【C#】【EXCEL】Bumblebee/Components/Analysis/GH_Ex_Ana_CondBetween.cs
  • WPF—资源的使用
  • 速盾:整站加速和cdn的关系是怎样的?
  • 设置视图的宽高
  • day35-测试之性能测试JMeter的测试报告、并发数计算和性能监控
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 30秒的PHP代码片段(1)数组 - Array
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • java8 Stream Pipelines 浅析
  • JavaScript对象详解
  • Linux中的硬链接与软链接
  • Phpstorm怎样批量删除空行?
  • spring学习第二天
  • SSH 免密登录
  • tensorflow学习笔记3——MNIST应用篇
  • Vue组件定义
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 计算机常识 - 收藏集 - 掘金
  • 简单数学运算程序(不定期更新)
  • 微服务核心架构梳理
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 你对linux中grep命令知道多少?
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ${factoryList }后面有空格不影响
  • (1)SpringCloud 整合Python
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (day 12)JavaScript学习笔记(数组3)
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (六)激光线扫描-三维重建
  • (论文阅读11/100)Fast R-CNN
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • .Net core 6.0 升8.0
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 表达式计算:Expression Evaluator
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • @软考考生,这份软考高分攻略你须知道
  • [C#基础]说说lock到底锁谁?