本项目是 LeetCode Hot 100 的 Java 解答汇总,涵盖了面试与算法学习中最高频的 100 道经典题目。
每个题目对应一个独立的目录,以题号命名:
q1/ # 两数之和 (Two Sum)
q2/ # 两数相加 (Add Two Numbers)
q3/ # 无重复字符的最长子串 (Longest Substring Without Repeating Characters)
q15/ # 三数之和 (3Sum)
q53/ # 最大子数组和 (Maximum Subarray)
q206/ # 反转链表 (Reverse Linked List)
...
- 语言:Java
- JDK:Java 8 及以上
- 开发工具:VS Code / IntelliJ IDEA
| 类别 | 涉及题目 |
|---|---|
| 数组 | 两数之和、三数之和、最大子数组和、合并区间等 |
| 链表 | 两数相加、反转链表、环形链表、相交链表等 |
| 二叉树 | 二叉树的中序/前序遍历、对称二叉树、最大深度等 |
| 动态规划 | 爬楼梯、最长递增子序列、编辑距离、股票问题等 |
| 回溯 | 全排列、子集、组合总和、N 皇后等 |
| 滑动窗口 | 无重复字符的最长子串、找到字符串中所有字母异位词等 |
| 双指针 | 盛最多水的容器、接雨水、三数之和等 |
进入对应题号目录,找到主类文件后编译运行:
cd q1
javac Solution.java
java Solution- 优先掌握 暴力解法,再思考如何优化到 最优复杂度。
- 对于链表/树问题,多画图辅助理解指针和递归过程。
- 动态规划类题目,先写出 状态定义 和 状态转移方程。
- 定期回顾已完成的题目,加深印象。
持续更新中,欢迎交流讨论!