計算量を最適化すべきですか
1回目の提出では、計算量を気にせず総当たりで解くことをおすすめします。総当たりで解く場合と最適化する場合とでは、難しさがまったく違うためです。
まず自分の力で解く
最適なコードを写して理解しても、自分でロジックを組み立てられるようにはなりません。遠回りでも、自分の手で解いてください。
解けたあとに最適化する
合格したあとに、同じ問題をもう一度考えてみてください。よくあるのは次の置き換えです。
- 配列の中を毎回探しているなら、ハッシュマップに置き換える
- 同じ計算を繰り返しているなら、結果を保存して使い回す
- 二重のループで全ての組み合わせを見ているなら、一度の走査で済まないか考える
コードは少し複雑になりますが、計算量は大きく減ります。この差を体感しておくと、実際の開発で判断できるようになります。
タイムアウトする場合
入力が大きくなると通らない場合は、最適化が必要です。タイムアウトやスタックオーバーフローになりますを参照してください。