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),效率大幅提升;
    • 缺点:需要额外的空间存储哈希表。
相关推荐
垆边人似月.3 分钟前
华为题:无重复字符的最长子串变种
算法
糖果豆豆10 分钟前
灾难性遗忘不是"新旧打架"——旧知识记不住,是因为它没长成"环"
算法
垆边人似月.11 分钟前
华为题:任务调度
数据结构·c++·算法
垆边人似月.12 分钟前
华为题:编辑距离
算法·华为
会灭火的程序员13 分钟前
大模型部署硬件资源计算指南:从显存估算到显卡选型
人工智能·算法
Logic10118 分钟前
C语言/数据结构字符串题解:解压缩“字符+次数“格式——多位数字处理与字符串还原
c语言·数据结构·字符串·模拟·时间复杂度·空间复杂度·算法题
信奥卷王21 分钟前
[GESP202506 六级] 最大因数(含视频)
数据结构·算法
局部有解27 分钟前
Leetcode - 42 接雨水(一维)
数据结构·c++·算法·leetcode
垆边人似月.32 分钟前
华为题:矩阵中的最长递增路径
算法·深度优先
小诗懂技术36 分钟前
linux驱动中断,相关中断的方式与适用场景
linux·arm开发·驱动开发·算法