Metadata-Version: 2.1
Name: leetcode_alg
Version: 0.1.0.dev0
Summary: `leetcode-alg`是针对leetcode解题的数据结构和算法库, 其设计准则是: 以通用性为核心, 并以最大可能进行性能优化. 
Home-page: https://github.com/Jintao-Huang/LeetCode-Py
Author: Jintao Huang
Author-email: huangjintao@mail.ustc.edu.cn
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# LeetCode-Py

## 介绍
1. LeetCode-Py仓库中包含2大内容. 
   1. 包含大量leetcode(python)题目的解答(将会收集**1k题**以上, 目前处于开发中). 
   2. 算法库: `leetcode-alg`. 
2. LeetCode-Py的**习题解答的风格**是在最优复杂度的前提下, 写出最简洁的代码(**不做过多细节的优化**: 因为不同于c/c++, python容易反向优化). 旨在将最优雅的python代码放入`answer`文件夹内. 
3. `leetcode-alg`是针对leetcode解题的数据结构和算法库, 其**设计准则**是: 以通用性为核心, 并以最大可能进行性能优化. 


## 安装和使用
1. 安装: 
    ```bash
    # 将此仓库下载的本地, 进入setup.py所在目录, 输入以下命令
    pip install .
    # or 从pypi下载
    pip install leetcode-alg -U
    ```
2. 使用: `from leetcode_alg import *`


## 索引
1. 数据结构
   1. 线段树: 307
      1. lazy: 
      2. 离散化: o51
      3. -(易混淆): 2021
   2. 树状数组: 307
      1. 变体: 
      2. 离散化: o51
   3. 哈希表: 1, 2183
   4. 链表: 
      1. 前向链表: 2, 19, 21, 23, 24, 25, 2181
      2. 双向循环链表: 
   5. 单调栈/队列
      1. 单调栈: 
      2. 单调队列: 
   6. 前缀树(Trie): 
      1. -(易混淆): 14
   7. 栈: 20
   8. 堆: 23
      1. 可动态修改的堆: 
         1. with dijkstra, prim: always
   9. union find
      1. with离散化: always
2. 算法
   1. 分治法: 
      1. 2路: 23
   2. 二分查找: 4
   3. 滑动窗口: 3
   4. 图的搜索:
      1. 回溯: 17, 22
      2. dfs:
      3. bfs: 
   5. 树的搜索
      1. dfs: 
         1. 公共祖先: 2096
      2. bfs: 
   6. 图算法: 
      1. dijkstra: 2203
      2. kruskal(稀疏图): 1584
      3. prim(稠密图): 1584
      4. dinic: 
      5. 匈牙利算法: 
   7. DP
      1. \[i..j\]dp: 5
      2. 双向dp: 2167
   8. 双指针: 11
      1. N数: 15, 16, 18
   9. 贪心: 11, 12, 2037, 2038, 2182
   10. 位运算: 2166, 
   11. 其他: 
      1. 中心法: 5, 2171, 2203
      2. 去重: 
         1. N数: 15, 16, 18
      3. 排序: 
         1. N数: 同双指针N数
         2. map有序化: 2021, 2165, 2170, 2183
         3. with贪心: 2037
            1. -(暗含): 12, 2182
         4. with离散化: always
         5. 2171
      4. int溢出: 7, 8
      5. 分类讨论
         1. 次大/小: 2170, 2182
            1. 不以0开头: 7, 8, 2165
3. 数学:
   1. gcd: 2183
4. 未分类: 
   1. 暴力: 2180
   2. 过于简单: 2022, 2164, 2169
   3. 6, 9, 13, 2043, 

