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

[面试精选] 0001. 两数之和

文章目录

      • 1. 题目链接
      • 2. 题目描述
      • 3. 题目示例
      • 4. 解题思路
      • 5. 题解代码
      • 6. 复杂度分析

1. 题目链接


1. 两数之和 - 力扣(LeetCode)


2. 题目描述


给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

你可以按任意顺序返回答案。

3. 题目示例


示例 1 :

输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2 :

输入:nums = [3,2,4], target = 6
输出:[1,2]

4. 解题思路


  • **哈希表: **使用哈希表来存储已经遍历过的数字及其索引,在O(1)时间内检查是否存在目标值(tar - x)。
  • 一次遍历:对于每个元素,检查哈希表中是否存在对应的补数(即tar - x),如果存在则立即返回结果。

5. 题解代码


class Solution {public int[] twoSum(int[] nums, int tar) {// 创建一个哈希表来存储数字和对应的索引Map<Integer, Integer> idx = new HashMap<>();// 遍历数组for (int i = 0; ; i++) {int x = nums[i]; // 当前数字// 检查哈希表中是否存在目标值(tar - x)if (idx.containsKey(tar - x)) {// 如果存在,返回这两个数的索引return new int[]{idx.get(tar - x), i};}// 将当前数字及其索引存入哈希表idx.put(x, i);}}
}

6. 复杂度分析


  1. 时间复杂度
    • 遍历数组一次:O(n),其中n是数组的长度。
    • 哈希表的插入和查找操作均为O(1)。
    • 总时间复杂度:O(n)。
  2. 空间复杂度
    • 哈希表存储最多n个数字及其索引:O(n)。
    • 总空间复杂度:O(n)。
http://www.dtcms.com/a/201683.html

相关文章:

  • 【解决】SSH 远程失败之路由配置问题
  • laravel中如何使用Validator::make定义一个变量是 ,必传的,json格式字符串
  • 【git】在Windows上搭建git服务器
  • 使用Java实现Navicat密码的加密与解密
  • Python训练营打卡 Day31
  • 牛客网 NC14736 双拆分数字串 题解
  • 【windows】音视频处理工具-FFmpeg(合并/分离)
  • I2C 协议的理解以及在 OLED 上的应用
  • mac上安装 Rust 开发环境
  • 数据分析_商务运营考核指标体系搭建
  • 【爬虫】12306自动化购票
  • [原创](现代Delphi 12指南):[macOS 64bit App开发]: 如何获取目录大小?
  • os agent智能体软件 - 第三弹 - 纯语音交互
  • 解决npm install报错:getaddrinfo ENOTFOUND registry.nlark.com
  • 如何从不同位置将联系人导入 iPhone(完整指南)
  • 【520 特辑】用 HTML/CSS/JavaScript 打造浪漫炫酷的表白网页
  • 【HTML-3】HTML 中的水平线与换行:基础元素详解
  • 零售EDI:Belk Stores EDI需求分析
  • 使用 ARCore 和 Kotlin 开发 Android 增强现实应用入门指南
  • 安装PostgresSQL
  • 在 Kotlin 中,什么是内联函数?有什么作用?
  • 微软的 Windows Linux 子系统现已开源
  • 基于R语言的空间异质性数据分析技术
  • Django基础(二)Django 项目基础操作
  • 【缺陷】GaN和AlN中的掺杂特性
  • Spring Cloud Gateway深度解析:原理、架构与生产实践
  • 如何使用MATLAB NLP工具箱进行文本聚类
  • 使用SQLite Expert个人版VACUUM功能修复数据库
  • 国标GB28181视频EasyGBS视频监控平台搭建城市交通道路可视化管理/道路视频巡检/应急监控指挥
  • [Java实战]Spring Boot整合Sentinel:流量控制与熔断降级实战(二十九)