TypeScriptを用いた効率的な区間挿入アルゴリズムの詳細解析
新区間開始前に終了する区間を追加
重複区間をマージ
新区間終了後に開始する区間を追加
条件: intervals[i][1] < newInterval[0]
処理: 新区間と重複しない前の区間をそのまま結果に追加
条件: intervals[i][0] <= newInterval[1]
処理: 重複する全ての区間を新区間と統合
条件: i < n (残りの区間が存在)
処理: 新区間と重複しない後の区間をそのまま結果に追加
| 項目 | 計算量 | 説明 |
|---|---|---|
| 時間計算量 | O(n) | 配列を一度だけ線形走査 |
| 空間計算量 | O(1) | 結果配列以外の追加領域は定数 |
| 最悪ケース | O(n) | 全区間が重複する場合でも線形時間 |
| 最良ケース | O(n) | 重複なしでも全配列走査が必要 |
配列を一度だけ走査することで、効率的な処理を実現
処理を明確に3段階に分けることで、複雑な条件判定を回避
条件分岐を最小化し、コードの可読性と効率性を向上
コンパイル時の型チェックによる実行時エラーの防止