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

两数之和-考察哈希表的运用

题目

  • 给定一个整数数组 n u m s nums nums和一个整数目标值 t a r g e t target target,请你在该数组中找出和为目标值 t a r g e t target target的那 两个整数,并返回它们的数组下标
    • 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
    • 你可以按任意顺序返回答案。

在这里插入图片描述

思路

争取一次遍历数组就能得到答案,因此可以边遍历边判断现遍历过的是否存在可以和当前遍历元素组成答案的元素。

  • 创建一个 M a p < I n t e g e r , I n t e g e r > Map<Integer,Integer> Map<Integer,Integer>,用于存储遍历过的元素值和其下标
  • 从头遍历数组并存储到Map中去
  • 当前遍历对象为 a a a
    • M a p Map Map中存在 t a r g e t − a target-a targeta则返回当前遍历到的下标和 M a p Map Map存储 t a r g e t − a target-a targeta的下标
    • 不存在则存储到 M a p Map Map,继续访问下一个

类似,一排人站成一队,我们要找出唯一存在的一对搭档。
我们可以依次排查,排查过的人都丢到一个圈里。
如果当前排查的人和圈里的人存在搭档关系,则圈里的人喊一声就行。

代码

class Solution {public int[] twoSum(int[] nums, int target) {Map <Integer,Integer>map = new HashMap<>();//圈for(int i=0;i<nums.length;i++){if(map.containsKey(target-nums[i])) {//圈里有没有人喊一声return new int[] {i,map.get(target-nums[i])};//有则找到了}map.put(nums[i], i);//没有就把这个人放圈里}return null;}
}
http://www.lryc.cn/news/330959.html

相关文章:

  • 视觉检测系统,外观细节无可挑剔
  • C++中string容器的字符串操作
  • Java编程使用CGLIB动态代理介绍与实战演示
  • vue3 渲染一个后端返回的图片字段渲染、table表格内放置图片
  • iOS开发进阶(十三):脚手架创建iOS项目
  • 手机无线投屏到windows11电脑
  • linux 环境安装配置
  • Git常用语句
  • 坦克大战_java源码_swing界面_带毕业论文
  • JVM 记录
  • Linux学习笔记————C 语言版 LED 灯实验
  • Spring Boot 配置文件
  • IPKISS ------ 查看器件默认端口名称
  • uni-app踩坑记录
  • 【嵌入式硬件】光耦
  • 学习Fast-LIO系列代码中相关概念理解
  • React 掌握及对比常用的8个Hooks,优化及使用场景
  • DNS域名解析过程
  • MySQL数据库(数据库连接池)
  • 【C#】知识点速通
  • FTP协议
  • 前后端分离开发【Yapi平台】【Swagger注解自动生成接口文档平台】
  • Android的硬件接口HAL-2 HIDL
  • pygame--坦克大战(二)
  • 【C语言】标准输入/输出(printf, scanf, gets, puts, getchar, putchar)
  • C、C++、C#中.vscode下json文件记录
  • 2013年认证杯SPSSPRO杯数学建模B题(第二阶段)流行音乐发展简史全过程文档及程序
  • 使用ARCore深度API实现点云采集
  • 软考数据库
  • Echarts 自适应宽高,或指定宽高进行自适应