# LeetcodeInPy **Repository Path**: daicy/LeetcodeInPy ## Basic Information - **Project Name**: LeetcodeInPy - **Description**: LeetCode和蓝桥杯的python刷题合集 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-06-25 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: LeetCode, Python, Algorithm ## README ```markdown # LeetcodeInPy 这是一个专注于 Python 算法实现的仓库,包含了 LeetCode 经典题目、蓝桥杯竞赛题目以及多种优化算法的实现。仓库采用模块化组织,方便学习、复习和实践。 ## 项目特点 - **结构清晰**:按题目类型和难度分层组织 - **多种解法**:提供暴力解法、优化解法以及官方解法 - **实用工具**:包含常用数据结构和算法工具类 - **持续更新**:定期添加新题目和解法 ## 项目结构 ``` LeetcodeInPy/ ├── algorithm/ # 各类算法实现 │ ├── MOPSO.py # 多目标粒子群优化算法 │ ├── ip_alloc.py # IP地址分配验证器 │ ├── timsort.py # Timsort排序算法 │ └── ... ├── leetcode/ # LeetCode题目解答 │ ├── hot100/ # Top 100 面试高频题 │ ├── seq/ # 顺序练习题 │ ├── dp/ # 动态规划专题 │ ├── dsu/ # 并查集 │ ├── bds.py # 基础数据结构 │ └── ... ├── lanqiao/ # 蓝桥杯竞赛题目 │ ├── 2017-2025/ # 各年度题目 │ ├── data/ # 测试数据 │ └── review/ # 复习资料 └── ... ``` ## 主要内容 ### LeetCode 题目分类 | 类别 | 描述 | 包含内容 | |------|------|----------| | Hot 100 | 面试高频100题 | 哈希表、双指针、滑动窗口、链表、树等 | | 动态规划 | DP问题专题 | 背包问题、子序列、最长子序列等 | | 数据结构 | 基础数据结构实现 | 链表、树、AVL树、并查集等 | | 滑动窗口 | 窗口类问题 | 最长子串、字母异位词等 | ### 蓝桥杯题目分类 - **国赛题目**:post_nation 目录 - **省赛题目**:post_region 目录 - **决赛题目**:under_nation 目录 - **测试数据**:data 目录包含输入输出样例 ### 实用工具 - **ListNode**:链表节点及工具类 - **TreeNode**:二叉树节点及工具类 - **AVLTree**:平衡二叉搜索树 - **Trie**:前缀树实现 - **TreeConverter**:树结构可视化转换 ## 环境要求 - Python 3.7+ - 推荐使用 `pip install -r requirements.txt` 安装依赖 ## 快速开始 ### 运行单个题目 ```python # 运行 LeetCode 题目 from leetcode.hot100.a_hash1_lc1 import twoSum print(twoSum([2, 7, 11, 15], 9)) # 输出: [0, 1] # 运行蓝桥杯题目 from lanqiao.2017.carriage import carriage from collections import deque que_a = deque([1, 2, 3, 4, 5]) que_b = deque([]) result = carriage(que_a, que_b) ``` ### 使用工具类 ```python from leetcode.bds import ListConvert, TreeConverter # 链表转换 head = ListConvert.list_to_link([1, 2, 3, 4, 5]) # 树结构转换与可视化 root = TreeConverter.list_to_tree([1, 2, 3, None, 4, 5]) TreeConverter.draw_tree_from_root(root) ``` ## 题目示例 ### LeetCode 题目 ```python # 两数之和 from leetcode.hot100.a_hash1_lc1 import twoSum nums = [3, 2, 4] target = 6 result = twoSum(nums, target) # [1, 2] ``` ### 蓝桥杯题目 ```python # 车厢调度问题 from lanqiao.2017.carriage import carriage from collections import deque que_a = deque([5, 4, 3, 2, 1]) que_b = deque([]) result = carriage(que_a, que_b) ``` ## 算法实现亮点 - **暴力法 vs 优化法**:大多数题目同时提供暴力解法和优化解法 - **多种实现方式**:如动态规划、递归、迭代等 - **复杂度分析**:代码中包含时间/空间复杂度说明 ## 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 创建 Pull Request ## 学习建议 1. **按主题学习**:根据目录结构选择感兴趣的主题 2. **对比解法**:查看同一题目的多种解法,理解优化思路 3. **动手实践**:修改代码并运行测试 4. **记录笔记**:在代码中添加自己的理解和注释 ## 许可证 本项目仅供学习交流使用。 ## 联系方式 - 仓库地址:https://gitee.com/daicy/LeetcodeInPy - 问题反馈:欢迎提交 Issue ```