diff --git a/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/FlattenDeeplyNestedArray_TS.ipynb b/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/FlattenDeeplyNestedArray_TS.ipynb
index 0485c2e4..d9307ab8 100644
--- a/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/FlattenDeeplyNestedArray_TS.ipynb
+++ b/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/FlattenDeeplyNestedArray_TS.ipynb
@@ -30,7 +30,7 @@
"|---------|----------|-----------|------------|---------|-------|-----|\n",
"| 再帰的展開 | O(N) | O(N + D) | 低 | 高 | 高 | N=全要素数、D=深さ。最も直感的 |\n",
"| スタック反復 | O(N) | O(N + D) | 中 | 高 | 中 | スタックオーバーフロー回避可能 |\n",
- "| reduce連鎖 | O(N) | O(N + D) | 中 | 中 | 中 | 関数型スタイル、やや複雑 |\n",
+ "| reduce連鎖 | O(N²) | O(N + D) | 中 | 中 | 中 | 関数型スタイル、やや複雑 |\n",
"\n",
"## 3. 選択したアルゴリズムと理由\n",
"\n",
@@ -63,7 +63,7 @@
" * @param arr - 平坦化する多次元配列\n",
" * @param n - 平坦化する深さ(0の場合は平坦化しない)\n",
" * @returns 平坦化された配列\n",
- " * @complexity Time: O(N), Space: O(N + D) - N:全要素数, D:深さ\n",
+ " * @complexity Time: O(N²), Space: O(N + D) - N:全要素数, D:深さ\n",
" */\n",
"var flat = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray {\n",
" // n = 0 の場合は平坦化不要\n",
@@ -98,7 +98,7 @@
"\n",
"/**\n",
" * reduceを使った関数型スタイルの実装\n",
- " * @complexity Time: O(N), Space: O(N + D)\n",
+ " * @complexity Time: O(N²), Space: O(N + D)\n",
" */\n",
"var flatReduce = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray {\n",
" if (n === 0) return arr;\n",
@@ -123,7 +123,7 @@
"\n",
"/**\n",
" * 反復的なスタックベース実装(大規模データ対応)\n",
- " * @complexity Time: O(N), Space: O(N + D)\n",
+ " * @complexity Time: O(N²), Space: O(N + D)\n",
" */\n",
"var flatIterative = function (arr: MultiDimensionalArray, n: number): MultiDimensionalArray {\n",
" const result: MultiDimensionalArray = [];\n",
@@ -175,7 +175,7 @@
"### パフォーマンス考察\n",
"\n",
"- **再帰呼び出しコスト**: 現代のJSエンジンは末尾再帰最適化を持たないが、制約範囲(depth ≤ 1000)では問題なし\n",
- "- **配列操作**: `push(...array)` は一度に複数要素を追加するため、ループより効率的\n",
+ "- **配列操作**: `push(...array)` はスプレッド展開により内部で配列を反復・割り当てするため、ホットパスでは明示的なループより遅い場合がある(本実装では `push(...flattened)` を要素ごとの `push` に変更することで156ms→80msに改善)\n",
"- **メモリ**: 結果配列は避けられないO(N)。コールスタックはO(D)で十分小さい"
]
},
@@ -522,12 +522,6 @@
"| スタック初期化 | `[[arr, 0]]` | `arr` の各要素を個別に `[arr[i], 0]` として追加 |\n",
"| depth判定 | `if (depth < n)` のみ | `if (Array.isArray(item) && depth < n)` |\n"
]
- },
- {
- "cell_type": "markdown",
- "id": "253e2ebb",
- "metadata": {},
- "source": []
}
],
"metadata": {
@@ -545,4 +539,4 @@
},
"nbformat": 4,
"nbformat_minor": 5
-}
+}
\ No newline at end of file
diff --git a/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/README_react.html b/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/README_react.html
index 883070aa..69184d39 100644
--- a/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/README_react.html
+++ b/JavaScript/2625. Flatten Deeply Nested Array/Claude Code Sonnet 4.5 extended/README_react.html
@@ -20,25 +20,40 @@
-
-
+
+
-
+