Skip to content

Commit 303c39d

Browse files
committed
Refine LeetCode 88 (Python, Rust, TS): Synchronize complexity tables, update Rust/TS sort space complexity to O(m+n), and fix React UI flowchart text
1 parent 61c21df commit 303c39d

6 files changed

Lines changed: 16 additions & 16 deletions

File tree

Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/Merge_Sorted_Array_Python.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
### 競技プログラミング視点
44

5-
`nums1` の末尾から逆順に埋める3ポインタ法が最適。CPython では `list` のインデックスアクセスは O(1) の C 実装であり、追加リスト生成ゼロ・ヒープアロケーションゼロで O(m+n) を達成できます。
5+
`nums1` の末尾から逆順に埋める3ポインタ法が最適。CPython では `list` のインデックスアクセスは O(1) の C 実装であり、本実装のようにスライス代入を用いると最悪ケース O(n) の追加空間を消費しますが、時間計算量 O(m+n) を達成できます。
66

77
### 業務開発視点
88

Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/Merge_Sorted_Array_Rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ LeetCode の関数シグネチャは `&mut Vec<i32>` の受け渡しを強制し
2121
| アプローチ | 時間計算量 | 空間計算量 | Rust実装コスト | 安全性 | 可読性 | 備考 |
2222
| --------------------------- | ---------------- | ---------- | -------------- | ------ | ------ | ------------------------- |
2323
| 後ろからマージ(3ポインタ) | O(m+n) | O(1) |||| 追加アロケーションなし ✅ |
24-
| 前からコピー後ソート | O((m+n)log(m+n)) | O(1) |||| 標準の `.sort()` 利用可 |
24+
| 前からコピー後ソート | O((m+n)log(m+n)) | O(m+n) |||| 標準の `.sort()` 利用可 |
2525
| 一時バッファにコピー | O(m+n) | O(m) |||| Vec への clone が発生 |
2626

2727
---

Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/Merge_Sorted_Array_TypeScript.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ LeetCode のシグネチャは `void` 返却の破壊的操作ですが、TypeSc
2121
| アプローチ | 時間計算量 | 空間計算量 | TS実装コスト | 型安全性 | 可読性 | 備考 |
2222
| --------------------------- | ---------------- | ---------- | ------------ | -------- | ------ | -------------------------- |
2323
| 後ろからマージ(3ポインタ) | O(m+n) | O(1) |||| 追加アロケーションなし ✅ |
24-
| コピー後 `.sort()` | O((m+n)log(m+n)) | O(1) | 最低 || 最高 | 比較関数必須・競技では次善 |
24+
| コピー後 `.sort()` | O((m+n)log(m+n)) | O(m+n) | 最低 || 最高 | 比較関数必須・競技では次善 |
2525
| 一時バッファにコピー | O(m+n) | O(m) |||| スプレッド構文でヒープ確保 |
2626

2727
---

Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,4 +324,4 @@ if n == 0:
324324

325325
`from __future__ import annotations` を使用することで、
326326
型アノテーションの評価が **遅延評価(文字列化)** になり、
327-
実行時のインポートオーバーヘッドを最小化する。
327+
実行時のインポートオーバーヘッドを最小化する。

Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/README_React.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ <h3 class="text-teal-800 font-bold text-lg mb-3">核心アイデア</h3>
652652
font-size="12"
653653
fill="#475569"
654654
>
655-
nums1[:j+1] = nums2[:j+1]
655+
while j &gt;= 0: nums1[k] = nums2[j]; k--; j--
656656
</text>
657657

658658
<line
@@ -753,7 +753,7 @@ <h3 class="text-teal-800 font-bold text-lg mb-3">核心アイデア</h3>
753753
コピー後 .sort()
754754
</td>
755755
<td class="px-4 py-3 mono text-slate-600">O((m+n) log(m+n))</td>
756-
<td class="px-4 py-3 mono text-slate-600">O(1)</td>
756+
<td class="px-4 py-3 mono text-slate-600">O(m+n)</td>
757757
<td class="px-4 py-3 text-slate-600">実装最短だが計算量で劣る</td>
758758
</tr>
759759
<tr class="border-b border-slate-100">
@@ -1331,19 +1331,19 @@ <h3 className="mt-0 text-teal-800 text-lg font-bold mb-2">
13311331
let k: number = m + n - 1; // 書き込み位置ポインタ (k >= i が常に成立)
13321332
13331333
while (i >= 0 && j >= 0) {
1334-
if (nums1[i] >= nums2[j]) {
1335-
nums1[k] = nums1[i];
1334+
if (nums1[i]! >= nums2[j]!) {
1335+
nums1[k] = nums1[i]!;
13361336
i--;
13371337
} else {
1338-
nums1[k] = nums2[j];
1338+
nums1[k] = nums2[j]!;
13391339
j--;
13401340
}
13411341
k--;
13421342
}
13431343
13441344
// nums2 の残余コピー (nums1 の残余は移動不要)
13451345
while (j >= 0) {
1346-
nums1[k--] = nums2[j--];
1346+
nums1[k--] = nums2[j--]!;
13471347
}
13481348
}`,
13491349

public/Algorithm/Sort/MergeSort/leetcode/claude 4.6 sonnet extended/88. Merge Sorted Array/README_React.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ <h3 class="text-teal-800 font-bold text-lg mb-3">核心アイデア</h3>
652652
font-size="12"
653653
fill="#475569"
654654
>
655-
nums1[:j+1] = nums2[:j+1]
655+
while j &gt;= 0: nums1[k] = nums2[j]; k--; j--
656656
</text>
657657

658658
<line
@@ -753,7 +753,7 @@ <h3 class="text-teal-800 font-bold text-lg mb-3">核心アイデア</h3>
753753
コピー後 .sort()
754754
</td>
755755
<td class="px-4 py-3 mono text-slate-600">O((m+n) log(m+n))</td>
756-
<td class="px-4 py-3 mono text-slate-600">O(1)</td>
756+
<td class="px-4 py-3 mono text-slate-600">O(m+n)</td>
757757
<td class="px-4 py-3 text-slate-600">実装最短だが計算量で劣る</td>
758758
</tr>
759759
<tr class="border-b border-slate-100">
@@ -1331,19 +1331,19 @@ <h3 className="mt-0 text-teal-800 text-lg font-bold mb-2">
13311331
let k: number = m + n - 1; // 書き込み位置ポインタ (k >= i が常に成立)
13321332
13331333
while (i >= 0 && j >= 0) {
1334-
if (nums1[i] >= nums2[j]) {
1335-
nums1[k] = nums1[i];
1334+
if (nums1[i]! >= nums2[j]!) {
1335+
nums1[k] = nums1[i]!;
13361336
i--;
13371337
} else {
1338-
nums1[k] = nums2[j];
1338+
nums1[k] = nums2[j]!;
13391339
j--;
13401340
}
13411341
k--;
13421342
}
13431343
13441344
// nums2 の残余コピー (nums1 の残余は移動不要)
13451345
while (j >= 0) {
1346-
nums1[k--] = nums2[j--];
1346+
nums1[k--] = nums2[j--]!;
13471347
}
13481348
}`,
13491349

0 commit comments

Comments
 (0)