Skip to content

Commit 16ca72b

Browse files
authored
Merge pull request #254 from myoshi2891/dev-from-macmini
Update snail traversal implementation and add SRI verification utility
2 parents 18cea1f + 46f7cd3 commit 16ca72b

9 files changed

Lines changed: 401 additions & 421 deletions

File tree

JavaScript/2624. Snail Traversal/Claude Code Sonnet 4.5/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,6 @@ graph LR
139139
| 基本版(Array.from) | ~158ms | ~69MB | 可読性高、標準的 |
140140
| 最適化版(ビット演算) | 154ms | 69.54MB | ビット演算で高速化 |
141141
| 高速化版(変数キャッシング) | 158ms | 69.10MB | 更なる高速化 |
142-
| メモリ最優先版 | 148ms | 67.10MB | メモリ効率最大化 |
143142

144143
_\*数値は特定環境での測定例です_
145144

@@ -338,7 +337,7 @@ const lastRow = rows - 1;
338337
5. **空配列**
339338

340339
```typescript
341-
[].snail(1, 0); // → [] (入力サイズ 0)
340+
[].snail(0, 0); // → [] (1×1=1 ≠ 0のため空配列を返す)
342341
```
343342

344343
6. **標準ケース(偶数列)**

JavaScript/2624. Snail Traversal/Claude Code Sonnet 4.5/README_react.html

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
66
<title>LeetCode: Snail Traversal - 蛇行パターンで1D→2D配列変換</title>
77

8-
<!-- Tailwind CSS -->
9-
<script
10-
src="https://cdn.tailwindcss.com/3.4.1"
11-
crossorigin="anonymous"
12-
></script>
8+
<!-- Tailwind CSS (Play CDN - SRI非対応) -->
9+
<script src="https://cdn.tailwindcss.com"></script>
1310

1411
<!-- Google Fonts -->
1512
<link rel="preconnect" href="https://fonts.googleapis.com" />
@@ -23,19 +20,19 @@
2320
<link
2421
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css"
2522
rel="stylesheet"
26-
integrity="sha384-wFjoQjtV1y5jVHbt0p35Ui8aV8GVpEZkyF99OXWqP/eNJDU93D3Ugxkoyh6Y2I4"
23+
integrity="sha384-wFjoQjtV1y5jVHbt0p35Ui8aV8GVpEZkyF99OXWqP/eNJDU93D3Ugxkoyh6Y2I4A"
2724
crossorigin="anonymous"
2825
/>
2926
<link
3027
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.css"
3128
rel="stylesheet"
32-
integrity="sha384-AnUkTNLI8COlMCRJ0FHIdX76If83145OTCLUx4gQyfnO0gGeO/sD9czGEUBxtkUU"
29+
integrity="sha384-nUkTNLI8COlMCRJ0FHIdX76If83145OTCLUx4gQyfnO0gGeO/sD9czGEUBxtkcUv"
3330
crossorigin="anonymous"
3431
/>
3532
<link
3633
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.css"
3734
rel="stylesheet"
38-
integrity="sha384-vEUzJ34/1CCeefTGUKLgvA5Z/vYIwi+Jyu8aAaCfFDxfwZ3Xs3OfkkIeegsLRM11"
35+
integrity="sha384-EUzJ34/1CCeefTGUKLgvA5Z/vYIwi+Jyu8aAaCfFDxfwZ3Xs3OfkkIeegsLRM11e"
3936
crossorigin="anonymous"
4037
/>
4138

@@ -251,8 +248,10 @@ <h3 class="text-xl font-semibold text-teal-800 mt-6 mb-3">戦略のポイント<
251248
TypeScript実装(最適化版)
252249
</h2>
253250

254-
<pre class="line-numbers"><code class="language-typescript">declare interface Array<T> {
255-
snail(rowsCount: number, colsCount: number): T[][];
251+
<pre class="line-numbers"><code class="language-typescript">declare global {
252+
interface Array&lt;T&gt; {
253+
snail(this: T[], rowsCount: number, colsCount: number): T[][];
254+
}
256255
}
257256

258257
/**
@@ -1297,18 +1296,20 @@ <h3 class="text-xl font-semibold text-teal-800 mt-8 mb-4">実装方法の比較<
12971296
<p className="font-semibold text-emerald-900">
12981297
Snail Traversalパターン:
12991298
</p>
1300-
{visual.result2d[0].map((_, colIdx) => {
1301-
const isEvenCol = colIdx % 2 === 0;
1302-
const colValues = isEvenCol
1303-
? visual.result2d.map(r => r[colIdx])
1304-
: [...visual.result2d].reverse().map(r => r[colIdx]);
1305-
1306-
return (
1307-
<li key={colIdx}>
1308-
• 列{colIdx}: {isEvenCol ? '上から下' : '下から上'} [{colValues.join(', ')}]
1309-
</li>
1310-
);
1311-
})}
1299+
<ul>
1300+
{visual.result2d[0].map((_, colIdx) => {
1301+
const isEvenCol = colIdx % 2 === 0;
1302+
const colValues = isEvenCol
1303+
? visual.result2d.map(r => r[colIdx])
1304+
: [...visual.result2d].reverse().map(r => r[colIdx]);
1305+
1306+
return (
1307+
<li key={colIdx}>
1308+
• 列{colIdx}: {isEvenCol ? '上から下' : '下から上'} [{colValues.join(', ')}]
1309+
</li>
1310+
);
1311+
})}
1312+
</ul>
13121313
</div>
13131314
</div>
13141315
)}
@@ -1619,10 +1620,5 @@ <h3 className="mt-0 text-teal-800 text-xl font-semibold">
16191620
const root = ReactDOM.createRoot(document.getElementById('react-root'));
16201621
root.render(<SnailTraversalSteps />);
16211622
</script>
1622-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
1623-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-typescript.min.js"></script>
1624-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/line-numbers/prism-line-numbers.min.js"></script>
1625-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/toolbar/prism-toolbar.min.js"></script>
1626-
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/copy-to-clipboard/prism-copy-to-clipboard.min.js"></script>
16271623
</body>
16281624
</html>

0 commit comments

Comments
 (0)