問題集: https://1kohei1.com/leetcode/
- 新井さんの問題順番にやっていきます。一日一問で最初はいいでしょう。
- 答えを見ずに考えて、5 分考えて分からなかったら答えを見てください。答えを見て理解したと思ったら、答えを隠して書いてください。筆が進まず 5 分迷ったら答えを見てください。そして、見ちゃったら一回全部消してやり直しです。答えを送信して、正解になったら、まずは一段階目です。
- 次にコードを読みやすくするようにできるだけ整えましょう。これで動くコードになったら二段階目です。
- そしたらまた全部消しましょう。今度は、時間を測りながら、もう一回、書きましょう。書いてアクセプトされたら文字を消してもう一回書きましょう。これを 10 分以内に一回もエラーを出さずに書ける状態になるまで続けてください。3 回続けてそれができたらその問題はひとまず丸です。
10 分以内に書くことを 3 回といっているのは、その過程で理解が整理されて思考が深まるからである。何回も繰り返し間違う箇所はなんらかの不自然さを反映していることが多い。書き上げた後に見直しをすることも想定している。また、稀に、回答がとても長くなる問題があり、そのときには 15 分を超えることもあるだろうし、長くなれば打ち損じも増える。理念に従って調整して欲しい。自らの教育のために何が最善かを考えるのも一つのエンジニアリングである。
- PR に memo.md を含めて、様々な疑問や感想などを書いている人も多い。
- LeetCode 公式の解答はあまり勧めない。
- GitHub にアップロードして、#レビュー依頼のチャンネルに同じ問題を解いている人を 5 人メンションしてレビューを依頼する。
- 困っているときには、積極的に助けを求めましょう。応答がなくなるよりも細かく刻む投稿をしたほうがいいです。
- 次に解く問題の予告(前の問題のレビューをしてもらうとき)
- 手を付けはじめた瞬間に手を付けた旨を書き込む
- 15 分くらい考えて分からなかったら、そこまで何を考えたのかを言語化する
- 動かないコードができあがって直せなかったら、どうしたらいいかを投げつける