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

【LeetCode刷题】两数之和

给定一个整数数组 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]

提示:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • 只会存在一个有效答案

解题思路

  1. 创建哈希表:用于存储数组中已遍历的数字及其对应的下标。
  2. 遍历数组:对于当前数字num,计算其与目标值target的差值complement = target - num
  3. 检查差值是否存在:如果complement在哈希表中,说明已找到满足条件的两个数,直接返回它们的下标;如果不在,将当前数字num及其下标存入哈希表。

Python代码:

from typing import Listclass Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:num_map = {}  # 存储{数字: 下标}for i, num in enumerate(nums):complement = target - numif complement in num_map:return [num_map[complement], i]num_map[num] = ireturn []# 测试代码
if __name__ == "__main__":# 示例输入test_cases = [([2, 7, 11, 15], 9),([3, 2, 4], 6),([3, 3], 6)]# 执行测试solution = Solution()for nums, target in test_cases:result = solution.twoSum(nums, target)print(f"输入: nums={nums}, target={target} → 输出: {result}")

程序运行截图如下:

总结

本文介绍了如何在整数数组中找到两个数,使其和等于目标值target,并返回它们的下标。通过哈希表存储已遍历数字及其下标,遍历数组时检查当前数字与目标值的差值是否存在于哈希表中,若存在则返回对应下标。Python实现包括创建哈希表、遍历数组和检查差值的步骤,并通过示例测试验证了算法正确性。该方法时间复杂度为O(n),空间复杂度为O(n),适用于大规模数据。

http://www.dtcms.com/a/580900.html

相关文章:

  • 10 月热搜精选
  • 郑州商城网站开发摄影网站源码 国外
  • Docker 加载镜像时报 no space left on device 的彻底解决方案
  • 5、prometheus标签
  • python+django/flask基于机器学习的就业岗位推荐系统
  • Mysql作业5
  • 为什么Vue 3需要ref函数?它的响应式原理与正确用法是什么?
  • STM32外设学习--TIM定时器--输入捕获---测频方法(代码编写)
  • 如何设置JVM参数避开直接内存溢出的坑?
  • (七)嵌入式面试题收集:8道
  • AI搜索营销破局:光引GEO多平台适配与实时优化引擎开发详解
  • 【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统
  • Windows10 wsl2 ubuntu22.04 docker安装
  • 使用docker-compose部署应用保姆级教程
  • 【Linux工具链】从跨平台适配到一键部署:yum多架构支持+Vim远程编辑+gcc交叉编译,解决多场景开发效率瓶颈
  • 简单做网站企业宣传视频制作免费模板
  • 西安SEO网站建设哪家好食品网站的网页设计
  • 网站开发公司哪家好嘉兴市建设工程监理协会网站
  • 天津做一个简单的网站首页wap门户网站源码
  • 热门软件排行榜泰州网站关键词优化
  • 怎么查询网站开发公司个人网站数据库大小
  • 营销型网站和传统网站区别ui设计技能就业培训
  • 威宁住房和城乡建设局网站wordpress is ssl
  • 网站域名缴费wordpress怎么改登陆地址
  • 网站底备案号链接代码小程序登录入口qq浏览器
  • 电商网站建设功能个人网页免费域名注册入口
  • 网站建设所用系统没有文字的网站怎么优化
  • 站长工具seo综合查询隐私查询做网站功能
  • 扬州市广陵区建设局网站做代理稳妥的彩票网站有哪些
  • 软件下载类型网站怎么做建筑公司资质甲级乙级