❌ 計算量が大きすぎてタイムアウト
# n=100万のデータに二重ループ(O(n²))は時間切れ
for i in range(n):
for j in range(n): # これは危険
...
✅ 計算量を改善する。ハッシュマップを活用したり、O(n log n)のアルゴリズムに変えると高速化できる。
❌ 再帰の無限ループ
def factorial(n):
return n * factorial(n - 1) # ← 基底条件(n=0)がない
✅ 再帰関数には必ず終了条件(基底条件)を書く: if n == 0: return 1
💡 問題を解くアプローチ
- まず「力任せ解法(ブルートフォース)」で解く
- 制約(n の最大値)を確認して計算量を見積もる
- TLEになりそうなら、より効率的なアルゴリズムを考える