LeetCode Hot100-哈希-两数之和

题目描述:

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

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

示例 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]

示例 3:

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

解题思路:

为了找到和为目标值的两个数,我们可以遍历数组,并使用哈希表来存储每个元素的值及其对应的索引。在遍历的过程中,我们检查哈希表中是否存在当前元素对应的目标值与当前元素之差(即另一个数),如果存在,则返回这两个数的索引。

具体步骤如下:

  1. 初始化一个空的哈希表 num_dict,用于存储数组中每个元素的值及其对应的索引。
  2. 遍历数组 nums,对于每个元素 num 和其索引 index,执行以下操作:
    • 计算目标值与当前元素之差 diff,即 diff = target - num
    • 检查 diff 是否在哈希表 num_dict 中,如果在,则返回 diff 对应的索引和当前元素的索引。
    • 否则,将当前元素的值及其索引存储到哈希表 num_dict 中。
  3. 如果遍历结束后仍未找到符合条件的两个数,则返回空列表。

Python 代码实现如下:

def two_sum(nums, target):# 初始化哈希表num_dict = {}# 遍历数组for index, num in enumerate(nums):# 计算目标值与当前元素之差diff = target - num# 检查差值是否在哈希表中if diff in num_dict:# 如果在,返回差值对应的索引和当前元素的索引return [num_dict[diff], index]# 否则,将当前元素的值及其索引存储到哈希表中num_dict[num] = index# 如果遍历结束仍未找到符合条件的两个数,则返回空列表return []# 测试示例
nums1 = [2, 7, 11, 15]
target1 = 9
print(two_sum(nums1, target1))  # 输出: [0, 1]nums2 = [3, 2, 4]
target2 = 6
print(two_sum(nums2, target2))  # 输出: [1, 2]nums3 = [3, 3]
target3 = 6
print(two_sum(nums3, target3))  # 输出: [0, 1]

以上代码实现了在给定数组中寻找两个数的索引,使其和等于目标值的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 完全二叉树的权值

Problem: 蓝桥杯 完全二叉树的权值 文章目录 思路解题方法前缀和双指针 复杂度前缀和Code双指针Code 思路 这个问题是关于完全二叉树的权值。完全二叉树的特性是,除了最后一层外,其他各层的节点数都达到最大,且最后一层从左向右连续。在这个问…

数据分析-Pandas类别数据序列合并

数据分析-Pandas类别数据序列合并 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&…

双进程交互实现App自动重启

背景 你可能会好奇,有些手游(比如王者荣耀)是怎么实现资源更新后自动重启的? 这个体验确实不错,因为不需要用户手动点击桌面图标重启App,在一些数据恢复备份的场景中,很实用。比如&#xff0c…

代码随想录算法训练营第二十天| 654.最大二叉树,617.合并二叉树,700.二叉搜索树中的搜索,98.验证二叉搜索树

题目与题解 654.最大二叉树 题目链接:654.最大二叉树 代码随想录题解:654.最大二叉树 视频讲解:又是构造二叉树,又有很多坑!| LeetCode:654.最大二叉树_哔哩哔哩_bilibili 解题思路: 构造最大二…

数据库及中表的创建和管理

目录 创建数据库 使用数据库(使用,查看信息) 修改数据库(删除,修改)

promethus的安装使用

1、# 软件下载地址 https://prometheus.io/download/ https://grafana.com/grafana/download https://prometheus.io/download/ Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。 Prometheus 的优点 1、非常少的外部依赖,安装…

OceanBase4.2.2.1 单机集群在ArmX86安装(自测记录)

OceanBase OceanBase就不必多加介绍了,本次主要是分享对于它的安装使用,先说说背景,首先接触是因为信创国产化的要求,为满足支持国产化,安装了Arm架构下版本4.0.0,满足支持通过。后来项目实际使用&#xff…

由浅到深认识Java语言(20):包装类

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

JavaScript中实现数组去重

在JavaScript中实现数组去重是一个常见的问题,下面是一个使用不同方法实现数组去重的示例代码: 方法一:使用Set对象 javascript function uniqueArray(arr) { return [...new Set(arr)]; } const arr [1, 2, 3, 3, 4, 5, 5, 6]; cons…

leetcode刷题日记-外观数组

题目描述 解题思路 初始化字符串 init 为 “1”,作为外观数列的第一项。 通过循环迭代生成外观数列的下一项,循环次数为 n-1,因为已经初始化了第一项。 在每次迭代中,通过两个指针 pos 和 start 来遍历当前项 init,po…

C++中的枚举类型

C中的enum(枚举)类型是一种用户定义的类型,用于表示一组整数值,每个值都有对应的名称,增强了代码的可读性和可维护性。 1. 基本枚举类型 基本的枚举类型定义了一组命名的整数常量。 enum Color {RED,GREEN,BLUE };C…

创业之路:探索如何在Facebook上创业成功

引言 在当今数字化时代,社交媒体已成为创业者们开展业务、建立品牌和推广产品的重要平台之一。作为全球最大的社交媒体平台之一,Facebook为创业者提供了丰富的机会和资源。本文将探讨如何在Facebook上创业成功的关键因素和实践方法,帮助创业…

Spring Cloud: openFegin

文章目录 一、什么是openFegin 一、什么是openFegin Spring Cloud OpenFeign 是一个声明式的 Web Service 客户端,它使得编写 Web Service 客户端变得更加简单。OpenFeign 整合了 Ribbon 和 Hystrix,提供了负载均衡和容错机制。同时,OpenFei…

语 句 篇

文章目录 1. if 语句2. for 循环3. while 循环 1. if 语句 if 语句用于基于某个条件执行代码。如果条件为真(True),则执行相应的代码块;如果条件为假(False),则跳过该代码块。 基本语法&#…

第九届蓝桥杯大赛个人赛省赛(软件类)真题C 语言 A 组-第几个幸运数字

幸运数字是可以被3,5,7任一整除的数字&#xff0c;列举小明号码内的所有可能组合并计数。注意别忘了把1占的一位减去。 #include<stdio.h> typedef long long ll; int main(){long long ans 0, n 59084709587505LL;for(ll i 1; i < n; i * 3){//计算小于等于n的数…

关于MySQL查询JSON的语法糖

1. 根据单JSON对象查询 select count(1) from report_configuration r where json_extract(r.report_configuration,$.dataSetName) :dataSetName 2.纯数组JSON查询 one代表就遇到第一个就返回 固定写法 SELECT count(1) FROM statistics_property where data_set_name …

AI程序员的诞生会对程序员有多大影响?

近期&#xff0c;全球首位AI程序员Devin的出场&#xff0c;不禁让我想到了一个有趣的问题&#xff1a;AI程序员会不会抢程序员的饭碗呢&#xff1f;先别着急下结论&#xff01;虽然AI技术在编程领域越来越广泛&#xff0c;但它真的能完全替代我们程序员吗&#xff1f; 目前的AI…

不愧是淘天,全方位八股拷打

恭喜发现宝藏&#xff01;搜索公众号【TechGuide】回复公司名&#xff0c;解锁更多新鲜好文和互联网大厂的笔经面经&#xff0c;目前已更新至美团、微软… 作者TechGuide【全网同名】 基本情况 投递岗位&#xff1a;后台开发 投递部门&#xff1a;阿里淘天 招聘类型&#xf…

数据结构中排序算法

介绍 排序算法是计算机科学中的一类算法&#xff0c;用于对元素序列进行排序&#xff0c;以便按照某种特定的顺序&#xff08;如升序或降序&#xff09;组织数据。这些算法在软件开发和数据处理中扮演着至关重要的角色&#xff0c;因为它们可以提高搜索效率、优化数据结构的访…

计算机程序的编译和链接

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…