世界を見る
アルゴリズム:一度に一つの技だけ
「ソート」「動的計画法」ではなく、「二分探索の境界」「DP の状態定義」「バックトラックの重複は同じ層か同じ枝か」—— 一本で一箇所だけ、なぜそうなるか言えるまで掘ります。
このプロンプト集は今のところ简体中文だけです。
使い方
この一群は学習型です:答えられなくなるまで追い込むのではなく、導きます。詰まったらまず「どの層で詰まったか」を聞きます(聞いたことがない/知っているがなぜかは分からない/分かるが書けない)。同じ点で二度導いても通じなければ初めて答えを言い、そのあと自分の言葉で言い直させます。
始め方
- 一本選んで開き、プロンプトをコピーします。
- 新しい空の会話に貼り、何も言わずに最初の質問を待ちます。
- コードより先に手で追うこと —— 途中で止められます。長さ 2 の配列で一歩ずつ追うほうが、型を十回書くより効きます。
途中でいつでも使える四つの合図
跳过すぐ次の場面へ换个说法ここを別の角度でもう一度説明してもらう直说吧答えを全部聞き、そのあと自分で言い直す复盘すぐ締めに飛んで、振り返りカードを出してもらう
三つの落とし穴
- 末尾の手札を先に読まないこと —— あの「よくある思い違い」の欄が、そのまま各問の答えです。
- すぐコードを書かないこと。アルゴリズムでは、コードを書く動作が「実は分かっていない」を最も隠しやすいのです。
- 褒め始めたら「褒めないで」の鉄則を見るように言ってください。導くことは甘やかすことではありません。
解法が思いつかないならまず「状態定義」。境界をよく間違えるなら「二分探索」と「累積和」。問題の形を見抜けないなら「単調スタック」と「尺取り法」。「計算量」の一本は他の何本かの土台なので早めに。
基礎
二分的边界
会写,但老是错边界 —— 因为你没说清自己维护的是哪个不变量。
滑动窗口什么时候不能滑
数组里有负数,你那个滑动窗口就错了 —— 说得出为什么吗?
同样是 O(n log n),为什么快排更快
快排和堆排都是 O(n log n),实测差两三倍。差在哪?
データ構造
单调栈:什么形状的题会塌成它
模板八行,难的是看见一道新题认出它是这个形状。
求第 k 大,为什么用小顶堆
求最大的 100 个,用小顶堆 —— 方向是反的,为什么?
并查集:两个优化各省了什么
十行代码,但去掉按秩合并会退化成什么,你说得出吗?
前缀和能用的前提是可逆
区间和能用它,区间最大值不能 —— 那条界线在哪?
設計の型
动态规划:状态定义才是那道坎
「看得懂题解、自己想不出来」,卡的几乎都是这一步。
贪心:过了样例不等于对
唯一一类跑过样例仍然可能彻底错的算法。
回溯去重:同层还是同枝
去重条件里那个感叹号,为什么在那儿?