📚 深入学习算法与数据结构 | 多语言实现 | 详细题解
|
|
algorithm 算法/
│
├── 📁 Java/ # ☕ Java 算法实现
│ ├── 两数之和P1/ # P1 = LeetCode 题号
│ │ ├── src/main/Solution.java
│ │ └── src/test/Test.java
│ ├── 买卖股票的最佳时机/
│ ├── 爬楼梯P70/
│ ├── 二叉树/
│ ├── 接雨水/
│ └── ... (100+ 题目)
│
├── 📁 JS/ # ⚡ JavaScript / TypeScript
│ ├── 1.js ~ 2770.js # LeetCode 题目编号
│ ├── express/ # Express 框架学习
│ ├── node-ts/ # TypeScript 实践
│ ├── Object/ # JS 对象底层原理
│ └── 堆.js / 归并排序.js # 经典算法
│
├── 📁 cpp/ # ⚙️ C++ 实现
│ └── test.cpp
│
├── 📁 基本算法/ # 📚 基础算法学习
│ ├── 排序/
│ ├── 二叉树/
│ └── 进制转换/
│
├── 📁 scss/ # 🎨 样式预处理器
└── 📁 githook/ # 🔧 Git 钩子配置
| 题目 | 难度 | Java | JS/TS |
|---|---|---|---|
| 两数之和 | 🟢 简单 | ✅ | ✅ |
| 两数相加 | 🟡 中等 | ✅ | ✅ |
| 无重复字符的最长子串 | 🟡 中等 | ✅ | - |
| 寻找两个正序数组的中位数 | 🔴 困难 | ✅ | - |
| 盛最多水的容器 | 🟡 中等 | ✅ | - |
├─ 🟢 简单
│ ├─ 两数之和 P1
│ ├─ 回文数 P9
│ ├─ 罗马数字转整数
│ └─ 爬楼梯 P70
│
├─ 🟡 中等
│ ├─ 无重复字符的最长子串 P3
│ ├─ 盛最多水的容器
│ ├─ 接雨水
│ ├─ 最小路径和 P64
│ └─ 买卖股票的最佳时机 II
│
└─ 🔴 困难
├─ 到达终点
├─ 最小覆盖子串
└─ 除自身以外数组的乘积
git clone https://github.com/your-username/algorithm.git
cd "algorithm 算法"cd Java/两数之和P1
# 编译运行
javac -cp src src/main/Solution.java src/test/Test.java -d out
java -cp out Testcd JS
node 1.jscd JS/node-ts
npx ts-node test_ts.tspublic int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement)) {
return new int[] { map.get(complement), i };
}
map.put(nums[i], i);
}
return new int[] {};
}var twoSum = function (nums, target) {
let map = new Map();
for (let i = 0; i < nums.length; i++) {
if (map.has(nums[i])) {
return [map.get(nums[i]), i];
}
map.set(target - nums[i], i);
}
return [];
}第一阶段:入门基础
├─ 数组、字符串操作
├─ 简单排序算法
└─ 基础数据结构(栈、队列)
第二阶段:数据结构
├─ 链表操作
├─ 二叉树遍历
├─ 哈希表应用
└─ 堆与优先队列
第三阶段:算法思想
├─ 双指针技巧
├─ 滑动窗口
├─ 动态规划入门
├─ 回溯算法
└─ 分治策略
第四阶段:挑战困难
├─ 复杂动态规划
├─ 图论基础
├─ 位运算技巧
└─ 高级数据结构
✅ 使用有意义的变量命名
✅ 添加必要的注释说明
✅ 分析时间和空间复杂度
✅ 考虑边界情况
❌ 避免硬编码
❌ 不要重复代码欢迎提交 Issue 和 PR!
- 🍴 Fork 本仓库
- 🔨 创建新分支 (
git checkout -b feature/AmazingFeature) - 💻 编写你的算法实现
- 📝 添加测试用例
- 🚀 提交并 Push
- 🎉 开启 Pull Request
本项目基于 MIT License 开源。
⭐ 如果对你有帮助,请给我一个 Star!
制作于 2026 · 算法学习之路,永无止境