// home
// start
C++ 在线编译 · 算法图解 · 中文笔记
crazycloud.cc 把浏览器里的 clang 编译、步进算法动画与可运行笔记放在同一套终端界面。
最新算法图解
- 区间调度图解:为什么先选最早结束的活动?
在同一条 SVG 时间轴上移动活动区间,按结束时刻排序并逐项选择;用可用时间边界、首尾相接和反例说明最大数量的贪心策略。
- 前缀异或图解:相同的位出现两次,为什么会消失?
用八位 SVG 位图逐步构造前缀异或,让共同前缀的位贡献成对消去;同步理解区间 XOR、零结果、空区间与 JavaScript 位宽边界。
- 树状数组图解:把前缀拆成不重叠的块
沿 lowbit 拆分前缀,沿覆盖关系更新;用区间条看懂树状数组的查询与单点增量,连接静态前缀和与动态区间和。
最新 C++ 笔记
- 递归 DFS 爆栈:一条 10 万个点的链,g++ 下多 5000 个点就段错误
求子树大小的递归 DFS,在 8 MB 栈上 g++ 只能走约 10.4 万层。把递归里藏着的「停在第几条边」搬进一个 vector,深度就只受内存限制。
- 单调栈图解:下一个更大元素,每个下标只进栈一次、出栈一次
暴力找「右边第一个更大的数」在 10 万个递减元素上要比较约 50 亿次,本机约 1.3 秒;单调栈 0.6 毫秒。快的原因不是技巧,是每个元素被确定答案之后就不再看它。
- LeetCode 206 反转链表图解:四行指针的顺序,和递归版在长链上爆栈
迭代版每一步只改一根指针,顺序错一行就丢掉整段链表。递归版更短,但在 8 MB 栈上,g++ -O0 撑到约 17 万个节点就段错误。
在线编译
- 打开 C/C++ Playground
浏览器里用 clang 编译为 WebAssembly,编辑、运行并分享片段,无需本地安装编译器。
- 浏览器里编译 C++:中文导览
从工具链加载到第一次跑通 Hello World,说明本站 Playground 怎么工作。
- scanf 与标准输入
在浏览器编译环境里处理 stdin,适合对照 Playground 的输入面板一起练。