Module 07

代码库 & ACM 题解

🎯 目标:把历年手写代码和刷过的 ACM/竞赛题目沉淀成可检索、可下载、可追溯的个人档案库。

概述

这个模块解决一个很现实的问题:代码写完了就散落在硬盘各处,面试时想拿出来展示却找不到。

本模块把两样东西集中管理:

  • 本地代码库:两个来源汇总
    • solutions/:按统一命名规范整理的解题文件,带题号、标题、难度、考点
    • leetcode/同步自外部做题仓库Gitee buleboy8065/leetcode)的历史代码, 以 ACM 模式书写(input() 读入、main() 入口),题面以注释附在文件末尾
  • ACM 题解06_code_archive/problems/ 下的竞赛题目,含题意、思路、代码、复杂度与易错点

所有内容都会被打包成源码压缩包,和 PDF 电子书一起放在下面的下载中心。


📦 下载中心

资料 说明 大小 下载
蓝皮书 · 完整版 高频手撕 + 八股文 + 大厂笔试真题 + 其他知识,共 1392 页 6.6 MB 下载
蓝皮书 · 高频手撕 第一章单独发行版,字节题单六大分类 118 道去重题,共 92 页 1.9 MB 下载
蓝皮书 · 源码包 蓝皮书对应版本的完整站点源码,可用于本地构建 17.2 MB 下载
我的代码库 · 源码包 solutions/ 解题代码 + 06_code_archive/ ACM 题解,由 build-archive.py 自动打包 12 KB 下载
代码库 & ACM 题解 · PDF 本页电子书:ACM 题解全文,由 Pandoc + XeLaTeX 从 06_code_archive 编译 1.3 MB 下载

校验值(SHA-256)

文件 SHA-256
zero2Leetcode-bluebook-v0.1.0-full.pdf 026901c393dad5a0b87d0cd9a826d7f1885db27d4ce5d4d80b5969e32c9941d9
zero2Leetcode-bluebook-v0.1.0-high-frequency.pdf 2ed899e0a15543365b642c83ca2ae52db00445a11beb53c2218a59be55e89566
zero2Leetcode-bluebook-v0.1.0.zip 4c0aaac35a3e5037325e021193b6e2e83e1de4a3e71a0c891f3d7601f084ca7f
zero2Leetcode-my-solutions-v0.1.0.zip 130ec3ada90552b136836134494a723c3a120bfb384398b9e2b063f45fe7fda4
zero2Leetcode-code-archive-v0.1.0.pdf bb485d03ab3de8c6d97d4f8ef8359e683a0bad302d3dfe24258abe03cd23ddbb

下载后可用 sha256sum <文件名> 核对完整性。

# Linux / macOS
sha256sum zero2Leetcode-bluebook-v0.1.0-full.pdf

# Windows PowerShell
Get-FileHash .\zero2Leetcode-bluebook-v0.1.0-full.pdf -Algorithm SHA256

🧩 ACM 题解索引

共收录 1 道题。

题目 来源 题号 难度 考点 完成日期 状态
CF 4A Watermelon 题解 Codeforces CF 4A 入门(800) 数学 / 奇偶性 2026-09-10 独立完成

📁 本地代码库

共 17 个文件,最近更新:2026-09-13。

文件 来源 题号 标题 难度 考点
lc_0001_two-sum.py solutions/ 0001 Two Sum Easy Hash Table
lc_0121_best-time-to-buy-and-sell-stock.py solutions/ 0121 Best Time to Buy and Sell Stock Easy Greedy
lc_0206_reverse-linked-list.py solutions/ 0206 Reverse Linked List Easy Linked List
lc_0704_binary-search.py solutions/ 0704 Binary Search Easy Binary Search
LC 1-两数之和.py leetcode/ACM-lc/HOT100 1 两数之和
LC 128-最长连续序列.py leetcode/ACM-lc/HOT100 128 最长连续序列
LC 283-移动零.py leetcode/ACM-lc/HOT100 283 移动零
LC 42-接雨水.py leetcode/ACM-lc/HOT100 42 接雨水
LC 49-字母异位词分组 copy 2.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组 copy 3.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组 copy 4.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组 copy 5.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组 copy 6.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组 copy 7.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 49-字母异位词分组.py leetcode/ACM-lc/HOT100 49 字母异位词分组
LC 1-两数之和.py leetcode/ACM-lc 1 两数之和
LC 49-字母异位词分组.py leetcode/ACM-lc 49 字母异位词分组

代码文件本身不单独在网页上发布,统一通过上面的源码压缩包下载。 solutions/ 是本站在用的规范格式;leetcode/ 是同步自外部做题仓库的历史代码。


⬆️ 怎么上传新的 PDF / 代码

本站是纯静态站点,没有后端,所以「上传」走 Git 工作流:文件放进仓库 → 推送 → 服务器重建。

方式一:上传 PDF

  1. 把 PDF 放到 downloads/ 目录
  2. _data/downloads.yml 里加一条记录:

    - title: "我的新电子书"
      file: "my-book-v1.0.pdf"
      desc: "一句话说明"
      size: "2.5 MB"
      sha256: "<用 sha256sum 算出来的值>"
    
  3. 提交推送,服务器重建后页面自动出现下载按钮
# 算 SHA-256
sha256sum downloads/my-book-v1.0.pdf

方式二:上传代码

代码直接交给脚本,它会自动扫描、生成索引并打包:

# 1. 添加题目(自动生成解题文件 + 登记记录)
python scripts/new_problem.py --id 121 --title "Best Time to Buy and Sell Stock" \
    --difficulty Easy --category "Greedy" --slug best-time-to-buy-and-sell-stock

# 2. 重建索引 + 重新打包源码压缩包
python scripts/build-archive.py

方式三:上传 ACM 题解

复制模板 → 填写 → 重建索引:

cp 06_code_archive/_template.md 06_code_archive/problems/cf-1234a-my-problem.md
# 编辑文件,填好 front matter 和题解内容
python scripts/build-archive.py

最后一步:发布

git add -A
git commit -m "feat: 上传新资料"
git push

推送后在服务器上执行重建(详见 DEPLOY_zh.md):

cd /home/ubuntu/shuati-coach/zero2Leetcode
bash scripts/deploy-server.sh

📕 怎么生成这一页的 PDF

本站的 PDF 由 Pandoc + XeLaTeX 链路产出,和蓝皮书是同一套:

# 完整编译(章节 1-4)
./publish-pdf/build.sh

# 只编译指定章节做预览
./publish-pdf/build.sh --chapters 1 --output bluebook-chapter-1-preview

产物写入 output/pdf/。依赖与目录说明见 publish-pdf/README.md

编译完成后,把 PDF 复制到 downloads/ 并按上面的「方式一」登记即可。


相关入口