Java每日一题

算法每日一题(Day 1:基础入门)

题目:两数之和

难度 :简单题目描述 :给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,且数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。

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

解题思路

这道题有两种常见解法,新手可以先掌握暴力解法,再进阶到高效解法:

  1. 暴力解法(入门) :双层 for 循环遍历数组,逐一检查两个数的和是否等于 target。
    • 优点:思路简单,容易理解;
    • 缺点:时间复杂度高(O (n²)),数据量大时效率低。
  2. 哈希表解法(进阶) :遍历数组时,用 HashMap 存储「数值 - 下标」的映射,每遍历一个数,先检查 HashMap 中是否存在 target - 当前数,存在则直接返回结果,不存在则将当前数存入 Map。
    • 优点:时间复杂度 O (n),空间复杂度 O (n),效率大幅提升;
    • 缺点:需要额外的空间存储哈希表。
相关推荐
来自远方的老作者19 分钟前
第7章 运算符-7.2 赋值运算符
开发语言·数据结构·python·赋值运算符
wanderist.21 分钟前
算法模板-字符串
数据结构·算法·哈希算法
xiaoye-duck22 分钟前
《算法题讲解指南:动态规划算法--子序列问题》--29.最长递增子序列的个数,30.最长数对链,31.最长定差子序列
c++·算法·动态规划
Yzzz-F26 分钟前
Problem - 2180D - Codeforces
算法
moonsea020326 分钟前
2023.9.25
算法
汀、人工智能29 分钟前
[特殊字符] Python基础语法速成教程
算法·链表·均值算法·哈希表·lru缓存·python基础语法速成教程
tankeven33 分钟前
HJ164 太阳系DISCO
c++·算法
来自远方的老作者36 分钟前
第7章 运算符-7.1 算术运算符
开发语言·数据结构·python·算法·算术运算符
white-persist2 小时前
【vulhub weblogic CVE-2017-10271漏洞复现】vulhub weblogic CVE-2017-10271漏洞复现详细解析
java·运维·服务器·网络·数据库·算法·安全
汀、人工智能2 小时前
[特殊字符] 第9课:三数之和
数据结构·算法·数据库架构·图论·bfs·三数之和