Skip to content

CoderLiLe/hello-algo

Repository files navigation

🚀 Hello Algorithm - 算法学习与实践仓库

GitHub Java Python Markdown LeetCode

GitHub stars GitHub forks GitHub issues GitHub last commit GitHub repo size

📖 项目简介

这是一个专注于算法学习与实践的仓库,包含多种算法和数据结构的实现、LeetCode 题解、算法模板等。

📑 目录

📊 仓库统计

项目 数量
文档文件 17
代码文件 930
总文件数 947
支持语言 c, cpp, java, py

🗂️ 目录结构

📚 文档分类

分类 文档数量
backtracking 3
binary_tree 4
dynamicProgram 1
map 2
string 1
其他 6

💻 代码实现

语言 文件数量
c 123
cpp 130
java 672
py 5

🎯 主要内容

1. 算法分类

  • 基础算法:排序、查找、递归等
  • 数据结构:数组、链表、栈、队列、树、图等
  • 高级算法:动态规划、回溯、贪心、分治等
  • LeetCode 题解:热门题目解析与实现

2. 语言实现

  • Java:面向对象实现,注重代码规范
  • Python:简洁实现,注重算法思想
  • 其他语言:根据需求逐步添加

3. 学习资源

  • 算法模板与套路总结
  • 常见问题解决方案
  • 性能分析与优化技巧

文档导航

二叉树

分类 题目
二叉树的属性 101. 对称二叉树
104. 二叉树的最大深度
111. 二叉树的最小深度
222. 完全二叉树的节点个数
110. 平衡二叉树
257. 二叉树的所有路径
404. 左叶子之和
513. 找树左下角的值
112. 路径总和
二叉树的修改与构造 226. 翻转二叉树
106. 中序+后序构造二叉树
654. 最大二叉树
617. 合并二叉树
二叉搜索树属性 98. 验证二叉搜索树
530. 二叉搜索树的最小绝对差
501. 二叉搜索树中的众数
538. 二叉搜索树转累加树
二叉树公共祖先问题 236. 二叉树的最近公共祖先
235. 二叉搜索树的最近公共祖先
二叉搜索树修改与构造 701. 二叉搜索树插入操作
450. 删除二叉搜索树节点
669. 修剪二叉搜索树
108. 有序数组转二叉搜索树

回溯

分类 题目
组合 17. 电话号码的字母组合
39. 组合总和
40. 组合总和 II
216. 组合总和 III
分割 93. 复原IP地址
131. 分割回文串
子集 78. 子集
90. 子集 II
排列 46. 全排列
47. 全排列 II
棋盘问题 51. N皇后
37. 解数独
其他 491. 递增子序列
332. 重新安排行程

贪心算法

分类 题目
简单问题 455. 分发饼干
1005. K次取反后最大化的数组和
860. 柠檬水找零
中等问题 376. 摆动序列
序列问题 738. 单调递增的数字
股票问题 122. 买卖股票的最佳时机II
714. 买卖股票的最佳时机含手续费
分配问题 135. 分发糖果
双维度问题 406. 根据身高重建队列
跳跃游戏 55. 跳跃游戏
45. 跳跃游戏II
区间问题 452. 用最少数量的箭引爆气球
435. 无重叠区间
763. 划分字母区间
56. 合并区间
其他经典问题 53. 最大子序和
134. 加油站
968. 监控二叉树

动态规划题目分类

分类 题目
基础题目 70. 爬楼梯
746. 使用最小花费爬楼梯
62. 不同路径
63. 不同路径 II
343. 整数拆分
96. 不同的二叉搜索树
01背包问题 416. 分割等和子集
1049. 最后一块石头的重量 II
494. 目标和
474. 一和零
完全背包问题 518. 零钱兑换 II
377. 组合总和 Ⅳ
70. 爬楼梯(完全背包解法)
322. 零钱兑换
279. 完全平方数
139. 单词拆分
打家劫舍系列 198. 打家劫舍
213. 打家劫舍 II
337. 打家劫舍 III
股票问题 121. 买卖股票的最佳时机
122. 买卖股票的最佳时机 II
123. 买卖股票的最佳时机 III
188. 买卖股票的最佳时机 IV
309. 最佳买卖股票时机含冷冻期
714. 买卖股票的最佳时机含手续费
子序列问题 300. 最长递增子序列
1143. 最长公共子序列
1035. 不相交的线
674. 最长连续递增序列
718. 最长重复子数组
53. 最大子数组和
392. 判断子序列
115. 不同的子序列
583. 两个字符串的删除操作
72. 编辑距离
回文问题 647. 回文子串
516. 最长回文子序列

🚀 快速开始

环境要求

  • Java 8+ 或 Python 3.6+
  • Git

使用方式

# 克隆仓库
git clone https://github.com/CoderLiLe/hello-algo.git

# 查看特定算法
cd hello-algo/docs/动态规划

运行示例

// Java 示例
javac Main.java
java Main
# Python 示例
python3 sort/bubble_sort.py

📈 学习路线

  1. 基础阶段:掌握基本数据结构和算法
  2. 进阶阶段:学习高级算法和优化技巧
  3. 实战阶段:解决 LeetCode 等平台题目
  4. 总结阶段:整理模板,形成自己的知识体系

🤝 贡献指南

欢迎贡献代码和文档!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📝 更新日志

最新更新

  • 添加 KMP 算法实现
  • 更新字符串匹配题解
  • 优化文档结构

计划功能

  • 添加更多算法实现
  • 增加算法可视化
  • 添加测试用例
  • 优化代码性能

🔗 相关资源

📞 联系与支持

如有问题或建议,请:

  1. 提交 Issue
  2. 通过邮件联系

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情


最后更新: 2026-03-13 22:54:04

如果这个项目对你有帮助,请给个 Star 支持一下!


持续更新中,欢迎关注和贡献!

About

数据结构与算法多种语言实现

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors