title: LeetCode Hot 100 题解全系列
date: 2026-02-27 10:00:00
tags: [LeetCode, 算法, 面试, Hot100]
categories: Leetcode
description: 系统整理 LeetCode Hot 100 高频题目,从思路分析到多语言实现,助力算法面试备战
toc: true
comments: true
cover: https://你的图床链接/leetcode-hot100-cover.png # 可选,替换为你的封面图链接
🌟 本系列系统整理 LeetCode 官方 Hot 100 高频题目,从思路分析到多语言实现,帮助你高效备战算法面试。
目录
- 两数之和 (Two Sum) - 哈希表
- 两数相加 (Add Two Numbers) - 链表
- 无重复字符的最长子串 - 滑动窗口
- 寻找两个正序数组的中位数 - 二分查找
- 最长回文子串 - 中心扩展
1. 两数之和 (Two Sum)
题目描述
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例 1:
plaintext
1 | 输入:nums = [2,7,11,15], target = 9 |
示例 2:
plaintext
1 | 输入:nums = [3,2,4], target = 6 |
提示:
2 <= nums.length <= 10^4-10^9 <= nums[i] <= 10^9-10^9 <= target <= 10^9- 只会存在一个有效答案
核心思路
| 解法 | 时间复杂度 | 空间复杂度 | 核心逻辑 |
|---|---|---|---|
| 暴力枚举 | O(n²) | O(1) | 双重循环遍历,逐一检查两数之和是否等于目标值 |
| 哈希表优化 | O(n) | O(n) | 空间换时间,用哈希表存储已遍历元素的「值 - 索引」,每次计算 target - 当前值 并检查哈希表 |
代码实现
Java 版(哈希表)
java
运行
1 | class Solution { |
Python 版(哈希表)
python
运行
1 | class Solution: |
常见坑点
- 误将「元素值」作为索引返回,而非题目要求的「数组下标」;
- 未处理数组中重复元素的情况(如
nums = [3,3]),但题目保证唯一解,无需额外处理; - 暴力枚举法在数据量大时超时,面试中优先使用哈希表解法。
2. 两数相加 (Add Two Numbers)
题目描述
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例 1:
plaintext
1 | 输入:l1 = [2,4,3], l2 = [5,6,4] |
示例 2:
plaintext
1 | 输入:l1 = [0], l2 = [0] |
核心思路
- 虚拟头节点:创建一个 dummy 节点简化链表操作,避免处理头节点为空的情况;
- 进位处理:遍历两个链表时,计算当前位的和 + 进位,新进位 = 总和 // 10,当前位值 = 总和 % 10;
- 边界处理:若其中一个链表遍历完毕,继续处理另一个链表的剩余节点;遍历结束后若进位 > 0,需新增节点存储进位。
代码实现
Java 版
java
运行
1 | // 链表节点定义 |
Python 版
python
运行
1 | # 链表节点定义 |
常见坑点
- 忽略最后一位的进位(如 999 + 999 = 1998,需新增节点存储最高位的 1);
- 未处理两个链表长度不一致的情况;
- 直接修改原链表节点值,导致数据丢失(应新建节点存储结果)。
3. 无重复字符的最长子串
题目描述
给定一个字符串 s,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
plaintext
1 | 输入:s = "abcabcbb" |
示例 2:
plaintext
1 | 输入:s = "bbbbb" |
核心思路(滑动窗口)
- 窗口定义:用哈希集合存储当前窗口内的字符,左指针
left表示窗口起始位置,右指针right遍历字符串; - 窗口收缩:若当前字符已在集合中,不断右移左指针并移除对应字符,直到窗口内无重复;
- 更新结果:每次遍历更新最长子串长度。
代码实现
python
运行
1 | class Solution: |
总结
- 本文提供的是标准 Markdown 格式的 LeetCode Hot 100 题解,兼容 Obsidian/Hexo/ 所有编辑器;
- 每道题包含「题目描述 + 核心思路 + 多语言代码 + 坑点总结」,结构统一且信息完整;
- 代码块标注明确的语言类型,保证 Hexo 发布后语法高亮正常显示。