Skip to content

Commit ee46640

Browse files
authored
Merge pull request #252 from myoshi2891/dev-from-macmini
Add snail traversal algorithm and improve cache/memoize implementations
2 parents 34bc30b + 0d25517 commit ee46640

5 files changed

Lines changed: 2438 additions & 6 deletions

File tree

JavaScript/2622. Cache With Time Limit/Claude Code Sonnet 4.5/CacheWithTimeLimit_TS.ipynb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,14 +291,17 @@
291291
" * 未期限切れキーの数を取得\n",
292292
" * @returns アクティブなキーの数\n",
293293
" * @complexity Time: O(n), Space: O(1)\n",
294+
" * @remarks 副作用: 期限切れエントリを遅延削除する\n",
294295
" */\n",
295296
" count(): number {\n",
296297
" const now = Date.now();\n",
297298
" let count = 0;\n",
298299
" \n",
299300
" // 期限切れでないエントリのみカウント\n",
300-
" for (const entry of this.cache.values()) {\n",
301-
" if (entry.expiresAt > now) {\n",
301+
" for (const [key, entry] of this.cache) {\n",
302+
" if (entry.expiresAt <= now) {\n",
303+
" this.cache.delete(key);\n",
304+
" } else {\n",
302305
" count++;\n",
303306
" }\n",
304307
" }\n",

JavaScript/2623. Memoize/Claude Code Sonnet 4.5/Memoize_TS.ipynb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@
6565
" const memoized: Fn = function (...args: number[]): number {\n",
6666
" const key = args.join(\",\");\n",
6767
"\n",
68-
" if (cache.has(key)) {\n",
69-
" return cache.get(key)!;\n",
68+
" const cached = cache.get(key);\n",
69+
" if (cached !== undefined) {\n",
70+
" return cached;\n",
7071
" }\n",
7172
"\n",
7273
" callCount += 1;\n",
@@ -141,8 +142,9 @@
141142
" ? args[0]\n",
142143
" : args[0] * 100001 + args[1];\n",
143144
"\n",
144-
" if (cache.has(key)) {\n",
145-
" return cache.get(key)!;\n",
145+
" const cached = cache.get(key);\n",
146+
" if (cached !== undefined) {\n",
147+
" return cached;\n",
146148
" }\n",
147149
"\n",
148150
" callCount += 1;\n",

0 commit comments

Comments
 (0)