{"id":1705,"date":"2025-08-26T17:44:40","date_gmt":"2025-08-26T09:44:40","guid":{"rendered":"https:\/\/womeifei.cn\/?page_id=1705"},"modified":"2025-11-23T18:16:57","modified_gmt":"2025-11-23T10:16:57","slug":"algorithm","status":"publish","type":"page","link":"https:\/\/womeifei.cn\/index.php\/algorithm\/","title":{"rendered":"Algorithm"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u6570\u7ec4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u5206\u67e5\u627e <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/binary-search\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function search(nums: number&#91;], target: number): number {\n    let mid: number, left: number = 0, right: number = nums.length - 1;\n    while (left &lt;= right) {\n        \/\/ \u4f4d\u8fd0\u7b97 + \u9632\u6b62\u5927\u6570\u6ea2\u51fa\n        mid = left + ((right - left) &gt;&gt; 1);\n        if (nums&#91;mid] &gt; target) {\n            right = mid - 1;\n        } else if (nums&#91;mid] &lt; target) {\n            left = mid + 1;\n        } else {\n            return mid;\n        }\n    }\n    return -1;\n};\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cc\u6307\u9488 \u5feb\u6162\u6307\u9488 \u79fb\u9664\u5143\u7d20 <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/remove-element\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u66b4\u529b\u89e3\u6cd5(\u6211\u7684\u60f3\u6cd5) : <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u904d\u5386\u6570\u7ec4  \u5c06\u6240\u6709\u7b49\u4e8e\u8981\u79fb\u9664\u5143\u7d20\u8d4b\u503c\u4e3a-1 \u7136\u540e\u518d\u8fdb\u884c\u5012\u5e8f\u6392\u5217\u5373\u53ef \u65f6\u95f4\u590d\u6742\u5ea6O(nlogn)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function removeElement(nums: number&#91;], val: number): number {\n    let len:number = nums.length\n    let cnt:number = 0\n    for(let i = 0;i &lt; len;i++){\n       if(nums&#91;i] === val){\n            cnt++\n            nums&#91;i] = -1\n       }\n    }\n    nums.sort((a,b)=&gt; b-a)\n    return len - cnt\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5feb\u6162\u6307\u9488<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u901a\u8fc7\u4e00\u4e2a\u5feb\u6307\u9488\u548c\u6162\u6307\u9488\u5728\u4e00\u4e2afor\u5faa\u73af\u4e0b\u5b8c\u6210\u4e24\u4e2afor\u5faa\u73af\u7684\u5de5\u4f5c<\/strong> \u65f6\u95f4\u590d\u6742\u5ea6O(n)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9a\u4e49\u5feb\u6162\u6307\u9488<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5feb\u6307\u9488\uff1a\u5bfb\u627e\u65b0\u6570\u7ec4\u7684\u5143\u7d20 \uff0c\u65b0\u6570\u7ec4\u5c31\u662f\u4e0d\u542b\u6709\u76ee\u6807\u5143\u7d20\u7684\u6570\u7ec4<\/li>\n\n\n\n<li>\u6162\u6307\u9488\uff1a\u6307\u5411\u66f4\u65b0 \u65b0\u6570\u7ec4\u4e0b\u6807\u7684\u4f4d\u7f6e<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>function removeElement(nums: number&#91;], val: number): number {\n    let slowIndex: number = 0, fastIndex: number = 0;\n    while (fastIndex &lt; nums.length) {\n        if (nums&#91;fastIndex] !== val) {\n            nums&#91;slowIndex++] = nums&#91;fastIndex];\n        }\n        fastIndex++;\n    }\n    return slowIndex;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u793a\u610f\u56fe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pic.leetcode-cn.com\/1619009113-SlyHyv-008eGmZEly1gntrds6r59g30du09mnpd.gif\">https:\/\/pic.leetcode-cn.com\/1619009113-SlyHyv-008eGmZEly1gntrds6r59g30du09mnpd.gif<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cc\u6307\u9488 \u6709\u5e8f\u6570\u7ec4\u7684\u5e73\u65b9 <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/squares-of-a-sorted-array\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6570\u7ec4\u5176\u5b9e\u662f\u6709\u5e8f\u7684\uff0c \u53ea\u4e0d\u8fc7\u8d1f\u6570\u5e73\u65b9\u4e4b\u540e\u53ef\u80fd\u6210\u4e3a\u6700\u5927\u6570\u4e86<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6570\u7ec4\u5e73\u65b9\u7684\u6700\u5927\u503c\u5c31\u5728\u6570\u7ec4\u7684\u4e24\u7aef\uff0c\u4e0d\u662f\u6700\u5de6\u8fb9\u5c31\u662f\u6700\u53f3\u8fb9\uff0c\u4e0d\u53ef\u80fd\u662f\u4e2d\u95f4<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\u53ef\u4ee5\u8003\u8651\u53cc\u6307\u9488\u6cd5\u4e86\uff0ci\u6307\u5411\u5176\u5b9e\u4f4d\u7f6e\uff0cj\u6307\u5411\u7ec8\u6b62\u4f4d\u7f6e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9a\u4e49\u4e00\u4e2a\u65b0\u6570\u7ec4result\uff0c\u548cA\u6570\u7ec4\u4e00\u6837\u7684\u5927\u5c0f\uff0c\u8ba9k\u6307\u5411result\u6570\u7ec4\u7ec8\u6b62\u4f4d\u7f6e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679cA[i] * A[i] &lt; A[j] * A[j] \u90a3\u4e48result[k&#8211;] = A[j] * A[j]; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679cA[i] * A[i] &gt;= A[j] * A[j] \u90a3\u4e48result[k&#8211;] = A[i] * A[i]; <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u793a\u610f\u56fe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pic.leetcode-cn.com\/1602811839-xiaxXW-977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.gif\">https:\/\/pic.leetcode-cn.com\/1602811839-xiaxXW-977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.gif<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function sortedSquares(nums: number&#91;]): number&#91;] {\n    let i = 0;\n    let j = nums.length - 1;\n    let result = new Array(nums.length); \/\/ \u76f4\u63a5\u521b\u5efa\u5b9a\u957f\u6570\u7ec4\n\n    for (let k = nums.length - 1; k &gt;= 0; k--) {\n        const leftSquare = nums&#91;i] * nums&#91;i];\n        const rightSquare = nums&#91;j] * nums&#91;j];\n        \n        if (leftSquare &gt; rightSquare) {\n            result&#91;k] = leftSquare;\n            i++;\n        } else {\n            result&#91;k] = rightSquare;\n            j--;\n        }\n    }\n    \n    return result;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u6ed1\u52a8\u7a97\u53e3 \u53cc\u6307\u9488 \u957f\u5ea6\u6700\u5c0f\u7684\u5b50\u6570\u7ec4 <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/minimum-size-subarray-sum\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u66b4\u529b\u89e3\u6cd5 &#8212;&gt; \u8d85\u65f6\u4e86!  \u65f6\u95f4\u590d\u6742\u5ea6O(n*n)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function minSubArrayLen(target: number, nums: number&#91;]): number {\n    let subLength = 0 \/\/\u5b50\u6570\u7ec4\u957f\u5ea6\n    let result = 1e10 \/\/\u6700\u540e\u7ed3\u679c\n    let sum = 0  \/\/\u5b50\u6570\u7ec4\u603b\u548c\n    for(let i=0 ;i&lt;nums.length;i++){\n        sum = 0\n        for(let j =i;j&lt;nums.length;j++){\n            sum += nums&#91;j]\n            if(sum&gt;=target){\n                subLength = j - i + 1\n                break \/\/\u53d1\u73b0\u5373\u7ec8\u6b62 \u518d\u7ee7\u7eed\u4e0b\u53bb\u5df2\u7ecf\u6ca1\u6709\u5fc5\u8981\n            }\n        }\n        result = result &gt; subLength ? subLength : result\n    }\n    return result ? result : 0\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6ed1\u52a8\u7a97\u53e3<\/strong> \u65f6\u95f4\u590d\u6742\u5ea6O(n)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u8c13\u6ed1\u52a8\u7a97\u53e3\uff0c\u5c31\u662f\u4e0d\u65ad\u7684\u8c03\u8282\u5b50\u5e8f\u5217\u7684\u8d77\u59cb\u4f4d\u7f6e\u548c\u7ec8\u6b62\u4f4d\u7f6e\uff0c\u4ece\u800c\u5f97\u51fa\u6211\u4eec\u8981\u60f3\u7684\u7ed3\u679c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u66b4\u529b\u89e3\u6cd5\u4e2d\uff0c\u662f\u4e00\u4e2afor\u5faa\u73af\u6ed1\u52a8\u7a97\u53e3\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u4e00\u4e2afor\u5faa\u73af\u4e3a\u6ed1\u52a8\u7a97\u53e3\u7684\u7ec8\u6b62\u4f4d\u7f6e\uff0c\u7528\u4e24\u4e2afor\u5faa\u73af \u5b8c\u6210\u4e86\u4e00\u4e2a\u4e0d\u65ad\u641c\u7d22\u533a\u95f4\u7684\u8fc7\u7a0b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u4e48\u6ed1\u52a8\u7a97\u53e3\u5982\u4f55\u7528\u4e00\u4e2afor\u5faa\u73af\u6765\u5b8c\u6210\u8fd9\u4e2a\u64cd\u4f5c\u5462<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u8981\u601d\u8003 \u5982\u679c\u7528\u4e00\u4e2afor\u5faa\u73af\uff0c\u90a3\u4e48\u5e94\u8be5\u8868\u793a \u6ed1\u52a8\u7a97\u53e3\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u8fd8\u662f\u7ec8\u6b62\u4f4d\u7f6e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u53ea\u7528\u4e00\u4e2afor\u5faa\u73af\u6765\u8868\u793a \u6ed1\u52a8\u7a97\u53e3\u7684\u8d77\u59cb\u4f4d\u7f6e\uff0c\u90a3\u4e48\u5982\u4f55\u904d\u5386\u5269\u4e0b\u7684\u7ec8\u6b62\u4f4d\u7f6e?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\u96be\u514d\u518d\u6b21\u9677\u5165 \u66b4\u529b\u89e3\u6cd5\u7684\u602a\u5708<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u4ee5 \u53ea\u7528\u4e00\u4e2afor\u5faa\u73af\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5faa\u73af\u7684\u7d22\u5f15\uff0c\u4e00\u5b9a\u662f\u8868\u793a \u6ed1\u52a8\u7a97\u53e3\u7684\u7ec8\u6b62\u4f4d\u7f6e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u793a\u610f\u56fe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pic.leetcode-cn.com\/1659059220-jxMpDA-209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.gif\">https:\/\/pic.leetcode-cn.com\/1659059220-jxMpDA-209.%E9%95%BF%E5%BA%A6%E6%9C%80%E5%B0%8F%E7%9A%84%E5%AD%90%E6%95%B0%E7%BB%84.gif<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function minSubArrayLen(target: number, nums: number&#91;]): number {\n    let left:number  = 0\n    let sum:number = 0\n    let res = Infinity\n    for(let right = 0;right&lt;nums.length;right++){\n        sum+=nums&#91;right]\n        while(sum&gt;=target){\n            res = Math.min(res,right - left + 1)\n            sum -= nums&#91;left++]\n        }\n    }\n    return res === Infinity ? 0 : res\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6ce8\u610f!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u8981\u4ee5\u4e3afor\u91cc\u653e\u4e00\u4e2awhile\u5c31\u4ee5\u4e3a\u662fO(n^2)\u554a\uff0c \u4e3b\u8981\u662f\u770b\u6bcf\u4e00\u4e2a\u5143\u7d20\u88ab\u64cd\u4f5c\u7684\u6b21\u6570\uff0c\u6bcf\u4e2a\u5143\u7d20\u5728\u6ed1\u52a8\u7a97\u540e\u8fdb\u6765\u64cd\u4f5c\u4e00\u6b21\uff0c\u51fa\u53bb\u64cd\u4f5c\u4e00\u6b21\uff0c\u6bcf\u4e2a\u5143\u7d20\u90fd\u662f\u88ab\u64cd\u4f5c\u4e24\u6b21\uff0c\u6240\u4ee5\u65f6\u95f4\u590d\u6742\u5ea6\u662f 2 \u00d7 n \u4e5f\u5c31\u662fO(n)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cc\u91cd\u5faa\u73af \u87ba\u65cb\u77e9\u9635II <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/spiral-matrix-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u575a\u6301\u5faa\u73af\u4e0d\u53d8\u91cf\u539f\u5219<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6a21\u62df\u987a\u65f6\u9488\u753b\u77e9\u9635\u7684\u8fc7\u7a0b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u586b\u5145\u4e0a\u884c\u4ece\u5de6\u5230\u53f3<\/li>\n\n\n\n<li>\u586b\u5145\u53f3\u5217\u4ece\u4e0a\u5230\u4e0b<\/li>\n\n\n\n<li>\u586b\u5145\u4e0b\u884c\u4ece\u53f3\u5230\u5de6<\/li>\n\n\n\n<li>\u586b\u5145\u5de6\u5217\u4ece\u4e0b\u5230\u4e0a<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-1.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"444\" height=\"402\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-1.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1731\"  sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u6bcf\u4e00\u79cd\u989c\u8272\uff0c\u4ee3\u8868\u4e00\u6761\u8fb9\uff0c\u6211\u4eec\u904d\u5386\u7684\u957f\u5ea6\uff0c\u53ef\u4ee5\u770b\u51fa\u6bcf\u4e00\u4e2a\u62d0\u89d2\u5904\u7684\u5904\u7406\u89c4\u5219\uff0c\u62d0\u89d2\u5904\u8ba9\u7ed9\u65b0\u7684\u4e00\u6761\u8fb9\u6765\u7ee7\u7eed\u753b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function generateMatrix(n: number): number&#91;]&#91;] {\n    let loopNum: number = Math.floor(n \/ 2);\/\/\u53f3 -&gt; \u4e0b -&gt; \u5de6 -&gt; \u4e0a\u4e00\u4e2a\u5faa\u73af\u7684\u5faa\u73af\u6b21\u6570\n    const resArr: number&#91;]&#91;] = new Array(n).fill(1).map(i =&gt; new Array(n));\/\/\u521b\u5efa\u4e8c\u7ef4\u6570\u7ec4\n    let chunkNum: number = n - 1; \/\/\u6bcf\u4e00\u4e2a\u79fb\u52a8\u65b9\u5411\u5206\u5757\u5904\u7406\u4e2a\u6570\n    \/\/\u4e00\u4e2a\u5faa\u73af\u7684\u8d77\u59cb\u4f4d\u7f6e\n    let startX: number = 0;\n    let startY: number = 0;\n    let value: number = 1;\n    let x: number, y: number;\n    while (loopNum--) {\n        x = startX;\n        y = startY;\n        while (x &lt; startX + chunkNum) {\n            resArr&#91;y]&#91;x] = value;\n            x++;\n            value++;\n        }\n        while (y &lt; startY + chunkNum) {\n            resArr&#91;y]&#91;x] = value;\n            y++;\n            value++;\n        }\n        while (x &gt; startX) {\n            resArr&#91;y]&#91;x] = value;\n            x--;\n            value++;\n        }\n        while (y &gt; startY) {\n            resArr&#91;y]&#91;x] = value;\n            y--;\n            value++;\n        }\n        startX++;\n        startY++;\n        chunkNum -= 2;\n    }\n    \/\/\u5355\u72ec\u5904\u7406\u4e2d\u95f4\u7684\u6570\u5b57\n    if (n % 2 === 1) {\n        resArr&#91;startX]&#91;startY] = value;\n    }\n    return resArr;\n};\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u8def\u5f84\u6a21\u62df \u65b9\u5411\u53d8\u6362 <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/spiral-matrix\/description\/\">54. \u87ba\u65cb\u77e9\u9635 &#8211; \u529b\u6263\uff08LeetCode\uff09<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u6a21\u62df\u87ba\u65cb\u77e9\u9635\u7684\u8def\u5f84\u3002\u521d\u59cb\u4f4d\u7f6e\u662f\u77e9\u9635\u7684\u5de6\u4e0a\u89d2\uff0c\u521d\u59cb\u65b9\u5411\u662f\u5411\u53f3\uff0c\u5f53\u8def\u5f84\u8d85\u51fa\u754c\u9650\u6216\u8005\u8fdb\u5165\u4e4b\u524d\u8bbf\u95ee\u8fc7\u7684\u4f4d\u7f6e\u65f6\uff0c\u987a\u65f6\u9488\u65cb\u8f6c\uff0c\u8fdb\u5165\u4e0b\u4e00\u4e2a\u65b9\u5411<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5224\u65ad\u8def\u5f84\u662f\u5426\u8fdb\u5165\u4e4b\u524d\u8bbf\u95ee\u8fc7\u7684\u4f4d\u7f6e\u9700\u8981\u4f7f\u7528\u4e00\u4e2a\u4e0e\u8f93\u5165\u77e9\u9635\u5927\u5c0f\u76f8\u540c\u7684\u8f85\u52a9\u77e9\u9635 visited\uff0c\u5176\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u8868\u793a\u8be5\u4f4d\u7f6e\u662f\u5426\u88ab\u8bbf\u95ee\u8fc7\u3002\u5f53\u4e00\u4e2a\u5143\u7d20\u88ab\u8bbf\u95ee\u65f6\uff0c\u5c06 visited \u4e2d\u7684\u5bf9\u5e94\u4f4d\u7f6e\u7684\u5143\u7d20\u8bbe\u4e3a\u5df2\u8bbf\u95ee<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u4f55\u5224\u65ad\u8def\u5f84\u662f\u5426\u7ed3\u675f\uff1f\u7531\u4e8e\u77e9\u9635\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u90fd\u88ab\u8bbf\u95ee\u4e00\u6b21\uff0c\u56e0\u6b64\u8def\u5f84\u7684\u957f\u5ea6\u5373\u4e3a\u77e9\u9635\u4e2d\u7684\u5143\u7d20\u6570\u91cf\uff0c\u5f53\u8def\u5f84\u7684\u957f\u5ea6\u8fbe\u5230\u77e9\u9635\u4e2d\u7684\u5143\u7d20\u6570\u91cf\u65f6\u5373\u4e3a\u5b8c\u6574\u8def\u5f84\uff0c\u5c06\u8be5\u8def\u5f84\u8fd4\u56de<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee3\u7801\u6ce8\u91ca\u5f88\u6e05\u6670!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function spiralOrder(matrix: number&#91;]&#91;]): number&#91;] {\n    \/\/\u7279\u6b8a\u60c5\u51b5\u5904\u7406\n    if (!matrix.length || !matrix&#91;0].length) {\n        return &#91;]\n    }\n    const rows: number = matrix.length \/\/\u77e9\u9635\u884c\u6570\n    const columns: number = matrix&#91;0].length\/\/\u77e9\u9635\u5217\u6570\n\n    \/\/\u8f85\u52a9\u77e9\u9635 visited\uff0c\u5176\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u8868\u793a\u8be5\u4f4d\u7f6e\u662f\u5426\u88ab\u8bbf\u95ee\u8fc7\n    const visited: boolean&#91;]&#91;] = new Array(rows).fill(false).map(() =&gt; new Array(columns).fill(false))\n    const total: number = rows * columns \/\/\u77e9\u9635\u5143\u7d20\u603b\u6570\n    const order: number&#91;] = new Array(total).fill(0)\/\/\u7ed3\u679c\u6570\u7ec4\n    let directionIndex: number = 0\/\/\u8def\u5f84\u65b9\u5411\n    let row: number = 0\n    let column: number = 0\n    \n    \/\/\u5404\u4e2a\u65b9\u5411\u8def\u5f84\u5bf9\u5e94\u7684\u6a2a\u7eb5\u5750\u6807\u53d8\u5316\u60c5\u51b5\n    const directions: &#91;number, number]&#91;] = &#91;&#91;0, 1], &#91;1, 0], &#91;0, -1], &#91;-1, 0]] \n    \n    for (let i = 0; i &lt; total; i++) { \n        order&#91;i] = matrix&#91;row]&#91;column] \n        visited&#91;row]&#91;column] = true \/\/\u5df2\u8bbf\u95ee\n        \n        \/\/\u5728\u5f53\u524d\u79fb\u52a8\u8def\u5f84\u60c5\u51b5\u4e0b\u7684\u4e0b\u4e00\u884c \u4e0e \u4e0b\u4e00\u5217 \u7528\u4e8e\u540e\u7eed\u5224\u65ad\u662f\u5426\u8d8a\u754c\/\u6539\u53d8\u65b9\u5411\n        const nextRow: number = row + directions&#91;directionIndex]&#91;0] \n        const nextColumn: number = column + directions&#91;directionIndex]&#91;1]\n        \n        \n        if (nextRow &lt; 0 || nextRow &gt;= rows || \n            nextColumn &lt; 0 || nextColumn &gt;= columns || \n            visited&#91;nextRow]&#91;nextColumn]) {\n            directionIndex = (directionIndex + 1) % 4\n        }\n        \/\/\u5f53\u524d\u8def\u5f84\u7684\u4e0b\u4e00\u884c \u4e0b\u4e00\u5217\n        row += directions&#91;directionIndex]&#91;0] \n        column += directions&#91;directionIndex]&#91;1]\n    }\n    return order\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u524d\u7f00\u548c \u533a\u95f4\u548c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u9898\u76ee\u94fe\u63a5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/kamacoder.com\/problempage.php?pid=1070\"> https:\/\/kamacoder.com\/problempage.php?pid=1070<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u666e\u901a\u505a\u6cd5\u4f1a\u8d85\u65f6!  \u8981\u4f7f\u7528\u524d\u7f00\u548c!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u524d\u7f00\u548c\u7684\u601d\u60f3\u662f<strong>\u91cd\u590d\u5229\u7528\u8ba1\u7b97\u8fc7\u7684\u5b50\u6570\u7ec4\u4e4b\u548c<\/strong>\uff0c\u4ece\u800c\u964d\u4f4e\u533a\u95f4\u67e5\u8be2\u9700\u8981\u7d2f\u52a0\u8ba1\u7b97\u7684\u6b21\u6570<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u524d\u7f00\u548c \u5728\u6d89\u53ca\u8ba1\u7b97\u533a\u95f4\u548c\u7684\u95ee\u9898\u65f6\u975e\u5e38\u6709\u7528<\/strong>\uff01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u8ba1\u7b97 \u4e0b\u68072-5\u7684\u6570\u7ec4\u5143\u7d20\u548c \u5982\u56fe\u793a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-2.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"884\" height=\"502\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-2.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1736\"  sizes=\"auto, (max-width: 884px) 100vw, 884px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">C++\u4ee3\u7801 <strong>\u9762\u5bf9\u5927\u91cf\u6570\u636e \u8bfb\u53d6 \u8f93\u51fa\u64cd\u4f5c\uff0c\u6700\u597d\u7528scanf \u548c printf\uff0c\u8017\u65f6\u4f1a\u5c0f\u5f88\u591a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\nint main() {\n    int n, a, b;\n    cin &gt;&gt; n;\n    vector&lt;int&gt; vec(n);\n    vector&lt;int&gt; p(n);\n    int presum = 0;\n    for (int i = 0; i &lt; n; i++) {\n        scanf(\"%d\", &amp;vec&#91;i]);\n        presum += vec&#91;i];\n        p&#91;i] = presum;\n    }\n\n    while (~scanf(\"%d%d\", &amp;a, &amp;b)) {\n        int sum;\n        if (a == 0) sum = p&#91;b];\n        else sum = p&#91;b] - p&#91;a - 1];\n        printf(\"%d\\n\", sum);\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JS(Node)\u7248\u672c\u4ee3\u7801<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b63\u597d\u901a\u8fc7\u8fd9\u4e2a\u5b66\u4e60\u4e00\u4e0bNode \u8fd8\u6709ACM\/\u9762\u8bd5\u6a21\u5f0f!<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8f761849 wp-block-group-is-layout-flex\">\n<p class=\"wp-block-paragraph\">\u4e4b\u524d\u8fd8\u4e0d\u77e5\u9053JS\u600e\u4e48\u5b9e\u73b0\u952e\u76d8\u5f55\u5165 (\u6276\u989d\u82e6\u7b11 \u5475\u5475\u5475\u54c8\u54c8\u54c8) <\/p>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u91ca\u62c9\u6ee1!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u5f15\u5165Node.js\u5185\u7f6e\u7684readline\u6a21\u5757\uff0c\u7528\u4e8e\u9010\u884c\u8bfb\u53d6\u8f93\u5165\nconst readline = require('readline'); \n\n\/\/ \u521b\u5efareadline\u63a5\u53e3\u5b9e\u4f8b\uff0c\u914d\u7f6e\u8f93\u5165\u8f93\u51fa\u6d41\nconst rl = readline.createInterface({\n    input: process.stdin,    \/\/ \u6807\u51c6\u8f93\u5165\uff08\u952e\u76d8\u8f93\u5165\uff09\n    output: process.stdout   \/\/ \u6807\u51c6\u8f93\u51fa\uff08\u63a7\u5236\u53f0\u8f93\u51fa\uff09\n});\n\nlet n = 0; \/\/\u6570\u7ec4\u957f\u5ea6\nlet array = &#91;]; \/\/\u88ab\u67e5\u8be2\u7684\u6570\u7ec4\nlet queries = &#91;]; \/\/\u67e5\u8be2\u7684\u6570\u7ec4 \u8bb0\u5f55\u67e5\u8be2\u5de6\u53f3\u8fb9\u754c\nlet lineCount = 0; \/\/\u7528lineCount\u5224\u65ad\u8f93\u5165\u5185\u5bb9\n\n\/\/ \u76d1\u542c'line'\u4e8b\u4ef6\uff1a\u6bcf\u5f53\u7528\u6237\u8f93\u5165\u4e00\u884c\u5e76\u6309\u56de\u8f66\u65f6\u89e6\u53d1\nrl.on('line', (line) =&gt; {\n    if (lineCount === 0) {\n        \/\/\u7b2c\u4e00\u6b21\u8f93\u5165 \u662fn\u7684\u503c\n        n = parseInt(line);\n        lineCount++;\n    } else if (lineCount &lt;= n) {\n        \/\/\u540e\u9762\u7684n\u4e2a\u6570 \u662f\u6570\u7ec4\u5143\u7d20\u503c\n        array.push(parseInt(line));\n        lineCount++;\n    } else {\n        \/\/\u6700\u540e\u7684\u8f93\u5165\u662f\u67e5\u8be2\u8fb9\u754c\n        const &#91;a, b] = line.trim().split(' ').map(Number);\n        queries.push(&#91;a, b]);\n    }\n});\n\n\/\/\u76d1\u542c'close'\u4e8b\u4ef6\uff1a\u5f53\u8f93\u5165\u7ed3\u675f\u65f6\u89e6\u53d1\uff08\u901a\u5e38\u662f\u6309Ctrl+C\u6216\u8f93\u5165\u6d41\u5173\u95ed\uff09\nrl.on('close', () =&gt; {\n    \/\/ \u6784\u5efa\u524d\u7f00\u548c\u6570\u7ec4\n    const prefix = new Array(n + 1).fill(0);\n    for (let i = 0; i &lt; n; i++) {\n        prefix&#91;i + 1] = prefix&#91;i] + array&#91;i];\n    }\n\n    \/\/ \u5904\u7406\u6bcf\u4e2a\u67e5\u8be2\n    for (const &#91;a, b] of queries) {\n        \/\/\u6ce8\u610f\u8fb9\u754c\u7684\u8c03\u6574\n        const sum = prefix&#91;b + 1] - prefix&#91;a];\n        console.log(sum);\n    }\n});<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u7ef4\u524d\u7f00\u548c \u5f00\u53d1\u5546\u8d2d\u4e70\u571f\u5730 <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/kamacoder.com\/problempage.php?pid=1044\">44. \u5f00\u53d1\u5546\u8d2d\u4e70\u571f\u5730\uff08\u7b2c\u4e94\u671f\u6a21\u62df\u7b14\u8bd5\uff09<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u57fa\u672c\u601d\u60f3\u7c7b\u4f3c\u4e8e\u666e\u901a\u7684\u524d\u7f00\u548c \u4e0d\u8fc7\u8fd9\u91cc\u662f\u4e8c\u7ef4\u60c5\u51b5 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">JS\u4ee3\u7801\u5982\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const readline = require('readline');\n\nconst rl = readline.createInterface({\n    input: process.stdin,\n    output: process.stdout\n});\n\nlet n, m;\nlet s = &#91;];\nlet data = &#91;];\nlet lineCount = 0;\n\nrl.on('line', (line) =&gt; {\n    if (lineCount === 0) {\n        &#91;n, m] = line.trim().split(' ').map(Number);\n        s = Array.from({ length: n + 1 }, () =&gt; new Array(m + 1).fill(0));\n        lineCount++;\n    } else {\n        data.push(line.trim().split(' ').map(Number));\n        \n        if (data.length === n) {\n            \/\/ \u6784\u5efa\u4e8c\u7ef4\u524d\u7f00\u548c\u6570\u7ec4\n            for (let i = 1; i &lt;= n; i++) {\n                for (let j = 1; j &lt;= m; j++) {\n                    s&#91;i]&#91;j] = s&#91;i - 1]&#91;j] + s&#91;i]&#91;j - 1] - s&#91;i - 1]&#91;j - 1] + data&#91;i - 1]&#91;j - 1];\n                }\n            }\n            \n            let ans = 1e9;\n            \n            \/\/ \u6c34\u5e73\u5207\u5272\n            for (let i = 1; i &lt; n; i++) {\n                let x = Math.abs(s&#91;n]&#91;m] - 2 * s&#91;i]&#91;m]);\n                ans = Math.min(ans, x);\n            }\n            \n            \/\/ \u5782\u76f4\u5207\u5272\n            for (let i = 1; i &lt; m; i++) {\n                let x = Math.abs(s&#91;n]&#91;m] - 2 * s&#91;n]&#91;i]);\n                ans = Math.min(ans, x);\n            }\n            \n            console.log(ans);\n            rl.close();\n        }\n    }\n});<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5173\u952e\u4ee3\u7801\u5982\u4e0b \u662f\u6784\u5efa\u4e8c\u7ef4\u524d\u7f00\u548c\u6570\u7ec4\u7684\u5173\u952e!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> <strong>s&#91;i]&#91;j] = s&#91;i - 1]&#91;j] + s&#91;i]&#91;j - 1] - s&#91;i - 1]&#91;j - 1] + data&#91;i - 1]&#91;j - 1];<\/strong><\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u603b\u7ed3<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6570\u7ec4\u6a21\u5757\u4e3b\u8981\u5b66\u4e60\u4e86\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u6cd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">1.\u4e8c\u5206\u67e5\u627e<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">2.\u53cc\u6307\u9488<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">3.\u6ed1\u52a8\u7a97\u53e3<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">4.\u524d\u7f00\u548c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e5f\u901a\u8fc7\u540e\u9762\u4e24\u4e2a\u9898\u76ee\u5b66\u4e60\u5230Node\u73af\u5883\u4e0b\u5199\u7b97\u6cd5\u7684\u4e00\u4e9b\u5904\u7406\u65b9\u5f0f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u94fe\u8868<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e00\u5757\u4e3b\u8981\u8981\u5b66\u4e60\u7684\u4e0d\u4ec5\u662f\u95ee\u9898\u7684\u89e3\u51b3 \u8fd8\u6709\u5982\u4f55\u7528JS\u6765\u5b9e\u73b0\u6570\u636e\u7ed3\u6784 (\u4e4b\u524d\u90fd\u662f\u7528C\/C++\u5b9e\u73b0\u7684)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u79fb\u9664\u94fe\u8868\u5143\u7d20 \u5c0f\u8bd5\u725b\u5200<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f88\u7b80\u5355 \u5c31\u662f\u7528JS\u5199\u94fe\u8868\u9898\u6709\u70b9\u964c\u751f&#8230;&#8230;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/remove-linked-list-elements\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var removeElements = function(head, val) {\n    let ret = new ListNode(0, head);\n    let curr = ret;\n    while (curr.next) {\n        if (curr.next.val === val) {\n            curr.next = curr.next.next;\n            \/\/ \u8fd9\u91cc\u4e0d\u79fb\u52a8curr\uff0c\u4ee5\u4fbf\u68c0\u67e5\u65b0\u7684curr.next\n        } else {\n            curr = curr.next; \/\/ \u53ea\u6709\u5f53\u4e0b\u4e00\u4e2a\u8282\u70b9\u4e0d\u9700\u8981\u5220\u9664\u65f6\u624d\u79fb\u52a8\n        }\n    }\n    return ret.next;\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u8bbe\u8ba1\u94fe\u8868  JS\u7684\u7c7b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/design-linked-list\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">constructor<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code>constructor<\/code>&nbsp;\u662f JavaScript \u7c7b\u4e2d\u7684<strong>\u7279\u6b8a\u65b9\u6cd5<\/strong>\uff0c\u7528\u4e8e\u521b\u5efa\u548c\u521d\u59cb\u5316\u7c7b\u7684\u5b9e\u4f8b\u5bf9\u8c61<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5f53\u4f7f\u7528&nbsp;<code>new<\/code>&nbsp;\u5173\u952e\u5b57\u521b\u5efa\u5b9e\u4f8b\u65f6\u81ea\u52a8\u8c03\u7528<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u4e0d\u5199\u4f1a\u600e\u4e48\u6837?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class ListNode {\n    \/\/ \u6ca1\u6709\u5199 constructor\n}\n\n\/\/ JavaScript \u4f1a\u81ea\u52a8\u6dfb\u52a0\uff1a\n\/\/ constructor() {} \n\nconst node = new ListNode();\nconsole.log(node); \/\/ ListNode {} (\u7a7a\u5bf9\u8c61)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u6784\u9020\u51fd\u6570\u5199\u6cd5<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u6765\u7684\u5199\u6cd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let MyLinkedList = function() {\n    this.size = 0;\n    this.head = new ListNode(0);\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b49\u4ef7\u7684ES6 Class\u5199\u6cd5<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class MyLinkedList {\n    constructor() {\n        this.size = 0;\n        this.head = new ListNode(0);\n    }\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">static<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><code>static<\/code>&nbsp;\u5173\u952e\u5b57\u7528\u4e8e\u5b9a\u4e49<strong>\u9759\u6001\u65b9\u6cd5<\/strong> \u901a\u8fc7\u7c7b\u76f4\u63a5\u8c03\u7528 this\u6307\u5411\u7c7b\u672c\u8eab \u4e0d\u80fd\u8bbf\u95ee\u5b9e\u4f8b\u6210\u5458<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u901a\u8fc7\u7c7b\u540d\u76f4\u63a5\u8c03\u7528\nconst list = MyLinkedList.fromArray(&#91;1, 2, 3]);<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>static fromArray(arr) {\n    \/\/ \u8fd9\u91cc\u7684 this \u6307\u5411 MyLinkedList \u7c7b\u672c\u8eab\n    const list = new this(); \/\/ \u76f8\u5f53\u4e8e new MyLinkedList()\n    \/\/ ...\n}\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>class MyLinkedList {\n    constructor() {\n        this.size = 0; \/\/ \u5b9e\u4f8b\u5c5e\u6027\n    }\n    \n    static fromArray(arr) {\n        console.log(this.size); \/\/ undefined\uff0c\u65e0\u6cd5\u8bbf\u95ee\u5b9e\u4f8b\u5c5e\u6027\n        \/\/ \u53ea\u80fd\u8bbf\u95ee\u9759\u6001\u5c5e\u6027\u548c\u65b9\u6cd5\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9e\u9645\u4f7f\u7528\u793a\u4f8b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u521b\u5efa\u94fe\u8868\u7684\u51e0\u79cd\u65b9\u5f0f\uff1a\n\n\/\/ 1. \u4f20\u7edf\u65b9\u5f0f\nconst list1 = new MyLinkedList();\nlist1.addAtTail(1);\nlist1.addAtTail(2);\nlist1.addAtTail(3);\n\n\/\/ 2. \u4f7f\u7528\u9759\u6001\u5de5\u5382\u65b9\u6cd5\nconst list2 = MyLinkedList.fromArray(&#91;1, 2, 3]);\n\n\/\/ \u4e24\u79cd\u65b9\u5f0f\u7ed3\u679c\u76f8\u540c\uff0c\u4f46\u7b2c\u4e8c\u79cd\u66f4\u7b80\u6d01<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u7ec8\u5b9e\u73b0\u4ee3\u7801 \u7528ES6+\u5b9e\u73b0 \u6bd5\u7adf\u65f6\u4ee3\u5728\u8fdb\u6b65\u561b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u94fe\u8868\u8282\u70b9\u7c7b\nclass ListNode {\n    constructor(val = 0, next = null) {\n        this.val = val;\n        this.next = next;\n    }\n}\n\n\/\/ \u94fe\u8868\u7c7b\nclass MyLinkedList {\n    constructor() {\n        this.size = 0;\n        this.head = new ListNode(0); \/\/ \u865a\u62df\u5934\u8282\u70b9\n    }\n\n    \/\/ \u83b7\u53d6\u6307\u5b9a\u4f4d\u7f6e\u7684\u8282\u70b9\u503c\n    get(index) {\n        if (index &lt; 0 || index &gt;= this.size) {\n            return -1;\n        }\n        \n        let current = this.head;\n        for (let i = 0; i &lt;= index; i++) {\n            current = current.next;\n        }\n        return current.val;\n    }\n\n    \/\/ \u5728\u5934\u90e8\u6dfb\u52a0\u8282\u70b9\n    addAtHead(val) {\n        this.addAtIndex(0, val);\n    }\n\n    \/\/ \u5728\u5c3e\u90e8\u6dfb\u52a0\u8282\u70b9\n    addAtTail(val) {\n        this.addAtIndex(this.size, val);\n    }\n\n    \/\/ \u5728\u6307\u5b9a\u4f4d\u7f6e\u6dfb\u52a0\u8282\u70b9\n    addAtIndex(index, val) {\n        if (index &gt; this.size) return;\n        \n        index = Math.max(0, index); \/\/ \u5904\u7406\u8d1f\u7d22\u5f15\n        \n        let prev = this.head;\n        for (let i = 0; i &lt; index; i++) {\n            prev = prev.next;\n        }\n        \n        const newNode = new ListNode(val, prev.next);\n        prev.next = newNode;\n        this.size++;\n    }\n\n    \/\/ \u5220\u9664\u6307\u5b9a\u4f4d\u7f6e\u7684\u8282\u70b9\n    deleteAtIndex(index) {\n        if (index &lt; 0 || index &gt;= this.size) return;\n        \n        let prev = this.head;\n        for (let i = 0; i &lt; index; i++) {\n            prev = prev.next;\n        }\n        \n        prev.next = prev.next.next;\n        this.size--;\n    }\n\n    \/\/ \u53ef\u9009\uff1a\u8f6c\u6362\u4e3a\u6570\u7ec4\uff08\u4fbf\u4e8e\u8c03\u8bd5\u548c\u6d4b\u8bd5\uff09\n    toArray() {\n        const result = &#91;];\n        let current = this.head.next;\n        while (current !== null) {\n            result.push(current.val);\n            current = current.next;\n        }\n        return result;\n    }\n\n    \/\/ \u53ef\u9009\uff1a\u4ece\u6570\u7ec4\u521b\u5efa\u94fe\u8868\uff08\u9759\u6001\u5de5\u5382\u65b9\u6cd5\uff09\n    static fromArray(arr) {\n        const list = new MyLinkedList();\n        arr.forEach(val =&gt; list.addAtTail(val));\n        return list;\n    }\n\n    \/\/ \u53ef\u9009\uff1a\u6253\u5370\u94fe\u8868\uff08\u8c03\u8bd5\u7528\uff09\n    print() {\n        console.log(this.toArray().join(' -&gt; '));\n    }\n}\n\n\/\/ \u4f7f\u7528\u793a\u4f8b\nconst list = new MyLinkedList();\nlist.addAtHead(1);\nlist.addAtTail(3);\nlist.addAtIndex(1, 2);  \/\/ \u94fe\u8868: 1 -&gt; 2 -&gt; 3\nconsole.log(list.get(1)); \/\/ 2\nlist.deleteAtIndex(1);    \/\/ \u94fe\u8868: 1 -&gt; 3\nconsole.log(list.get(1)); \/\/ 3\n\n\/\/ \u4f7f\u7528\u9759\u6001\u5de5\u5382\u65b9\u6cd5\nconst list2 = MyLinkedList.fromArray(&#91;4, 5, 6]);\nlist2.print(); \/\/ 4 -&gt; 5 -&gt; 6<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cd\u8f6c\u94fe\u8868 \u53cc\u6307\u9488 or \u9012\u5f52<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/reverse-linked-list\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53cc\u6307\u9488<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u793a\u610f\u56fe:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/pic.leetcode-cn.com\/1631933586-mEtOBg-008eGmZEly1gnrf1oboupg30gy0c44qp.gif\">https:\/\/pic.leetcode-cn.com\/1631933586-mEtOBg-008eGmZEly1gnrf1oboupg30gy0c44qp.gif<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u53cc\u6307\u9488\uff1a\nvar reverseList = function(head) {\n    if(!head || !head.next) return head;\n    let temp = null, pre = null, cur = head;\n    while(cur) {\n        temp = cur.next;\n        cur.next = pre;\n        pre = cur;\n        cur = temp;\n    }\n    \/\/ temp = cur = null;\n    return pre;\n};\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u9012\u5f52\u89e3\u51b3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u9012\u5f52\uff1a\nvar reverse = function(pre, head) {\n    if(!head) return pre;\n    const temp = head.next;\n    head.next = pre;\n    pre = head\n    return reverse(pre, temp);\n}\n\nvar reverseList = function(head) {\n    return reverse(null, head);\n};\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e24\u4e24\u4ea4\u6362\u94fe\u8868\u4e2d\u7684\u8282\u70b9<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/swap-nodes-in-pairs\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u628a\u903b\u8f91\u641e\u6e05\u695a\u5373\u53ef!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(dummy : \u865a\u62df\u8282\u70b9)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var swapPairs = function (head) {\n  const dummy = new ListNode(0, head);\n  let current = dummy;\n  \n  while (current.next &amp;&amp; current.next.next) {\n    \/\/\u5faa\u73af\u6761\u4ef6\u4e0d\u80fd\u4ea4\u6362\u4f4d\u7f6e\n    \/\/\u56e0\u4e3a\u5fc5\u987b\u5148\u68c0\u67e5temp.next\u5b58\u5728\uff0c\u624d\u80fd\u5b89\u5168\u5730\u8bbf\u95eetemp.next.next\n    const first = current.next;\n    const second = current.next.next;\n    \n    \/\/ \u4ea4\u6362\u8282\u70b9\n    first.next = second.next;\n    second.next = first;\n    current.next = second;\n    \n    \/\/ \u79fb\u52a8\u5230\u4e0b\u4e00\u5bf9\u7684\u524d\u4e00\u4e2a\u8282\u70b9\n    current = first;\n  }\n  \n  return dummy.next;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u9012\u5f52\u7248\u672c<\/strong><br>var swapPairs = function (head) {<br>  if (head == null || head.next == null) {<br>    return head;<br>  }<br><br>  let after = head.next;<br>  head.next = swapPairs(after.next);<br>  after.next = head;<br><br>  return after;<br>};<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5220\u9664\u94fe\u8868\u7684\u5012\u6570\u7b2cN\u4e2a\u7ed3\u70b9 \u5feb\u6162\u6307\u9488<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/remove-nth-node-from-end-of-list\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u8fd9\u91cc\u6211\u63a8\u8350\u5927\u5bb6\u4f7f\u7528<strong>\u865a\u62df\u5934\u7ed3\u70b9<\/strong>\uff0c\u8fd9\u6837<strong>\u65b9\u4fbf\u5904\u7406\u5220\u9664\u5b9e\u9645\u5934\u7ed3\u70b9\u7684\u903b\u8f91<\/strong>\uff0c\u5982\u679c\u865a\u62df\u5934\u7ed3\u70b9\u4e0d\u6e05\u695a\uff0c\u53ef\u4ee5\u770b\u8fd9\u7bc7\uff1a&nbsp;<a href=\"https:\/\/programmercarl.com\/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html\" target=\"_blank\" rel=\"noreferrer noopener\">\u94fe\u8868\uff1a\u542c\u8bf4\u7528\u865a\u62df\u5934\u8282\u70b9\u4f1a\u65b9\u4fbf\u5f88\u591a\uff1f<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5220\u9664\u4e00\u4e2a\u7ed3\u70b9 \u9700\u8981\u627e\u5230\u8fd9\u4e2a\u7ed3\u70b9\u7684\u524d\u4e00\u4e2a\u7ed3\u70b9!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u82e5\u6ca1\u6709\u865a\u62df\u5934\u7ed3\u70b9 \u5219\u5220\u9664\u5934\u7ed3\u70b9\u64cd\u4f5c\u9700\u8981\u5355\u72ec\u5904\u7406!<\/strong> <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var removeNthFromEnd = function (head, n) {\n    \/\/ \u521b\u5efa\u54e8\u5175\u8282\u70b9\uff0c\u7b80\u5316\u89e3\u9898\u903b\u8f91\n    let dummy =  new ListNode(0,head)\n    let fast = dummy\n    let slow = dummy\n    while(n--){\n        fast = fast.next\n    }\n    while(fast.next){\n        fast = fast.next\n        slow = slow.next\n    }\n    slow.next = slow.next.next\n    return dummy.next\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u94fe\u8868\u76f8\u4ea4 \u5148\u8d70\u4e00\u6b65 \u89e3\u6784\u8d4b\u503c\u4ea4\u6362\u6570\u636e<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/intersection-of-two-linked-lists-lcci\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u770b\u5982\u4e0b\u4e24\u4e2a\u94fe\u8868\uff0c\u76ee\u524dcurA\u6307\u5411\u94fe\u8868A\u7684\u5934\u7ed3\u70b9\uff0ccurB\u6307\u5411\u94fe\u8868B\u7684\u5934\u7ed3\u70b9\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-34.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"582\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-34.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1807\"  sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u4eec\u6c42\u51fa\u4e24\u4e2a\u94fe\u8868\u7684\u957f\u5ea6\uff0c\u5e76\u6c42\u51fa\u4e24\u4e2a\u94fe\u8868\u957f\u5ea6\u7684\u5dee\u503c\uff0c\u7136\u540e\u8ba9curA\u79fb\u52a8\u5230\uff0c\u548ccurB \u672b\u5c3e\u5bf9\u9f50\u7684\u4f4d\u7f6e\uff0c\u5982\u56fe\uff1a<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/file1.kamacoder.com\/i\/algo\/%E9%9D%A2%E8%AF%95%E9%A2%9802.07.%E9%93%BE%E8%A1%A8%E7%9B%B8%E4%BA%A4_2.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/file1.kamacoder.com\/i\/algo\/%E9%9D%A2%E8%AF%95%E9%A2%9802.07.%E9%93%BE%E8%A1%A8%E7%9B%B8%E4%BA%A4_2.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\u9762\u8bd5\u989802.07.\u94fe\u8868\u76f8\u4ea4_2\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u65f6\u6211\u4eec\u5c31\u53ef\u4ee5\u6bd4\u8f83curA\u548ccurB\u662f\u5426\u76f8\u540c\uff0c\u5982\u679c\u4e0d\u76f8\u540c\uff0c\u540c\u65f6\u5411\u540e\u79fb\u52a8curA\u548ccurB\uff0c\u5982\u679c\u9047\u5230curA == curB\uff0c\u5219\u627e\u5230\u4ea4\u70b9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5426\u5219\u5faa\u73af\u9000\u51fa\u8fd4\u56de\u7a7a\u6307\u9488<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var getListLen = function(head) {\n    let len = 0, cur = head;\n    while(cur) {\n       len++;\n       cur = cur.next;\n    }\n    return len;\n}\nvar getIntersectionNode = function(headA, headB) {\n    let curA = headA,curB = headB,\n        lenA = getListLen(headA),   \/\/ \u6c42\u94fe\u8868A\u7684\u957f\u5ea6\n        lenB = getListLen(headB);  \n    if(lenA &lt; lenB) {       \/\/ \u8ba9curA\u4e3a\u6700\u957f\u94fe\u8868\u7684\u5934\uff0clenA\u4e3a\u5176\u957f\u5ea6\n    \n        \/\/ \u4ea4\u6362\u53d8\u91cf\u6ce8\u610f\u52a0 \u201c\u5206\u53f7\u201d \uff0c\u4e24\u4e2a\u6570\u7ec4\u4ea4\u6362\u53d8\u91cf\u5728\u540c\u4e00\u4e2a\u4f5c\u7528\u57df\u4e0b\u65f6\n        \/\/ \u5982\u679c\u4e0d\u52a0\u5206\u53f7\uff0c\u4e0b\u9762\u4e24\u6761\u4ee3\u7801\u7b49\u540c\u4e8e\u4e00\u6761\u4ee3\u7801: &#91;curA, curB] = &#91;lenB, lenA]\n        \n        &#91;curA, curB] = &#91;curB, curA];\n        &#91;lenA, lenB] = &#91;lenB, lenA];\n    }\n    let i = lenA - lenB;   \/\/ \u6c42\u957f\u5ea6\u5dee\n    while(i-- &gt; 0) {       \/\/ \u8ba9curA\u548ccurB\u5728\u540c\u4e00\u8d77\u70b9\u4e0a\uff08\u672b\u5c3e\u4f4d\u7f6e\u5bf9\u9f50\uff09\n        curA = curA.next;\n    }\n    while(curA &amp;&amp; curA !== curB) {  \/\/ \u904d\u5386curA \u548c curB\uff0c\u9047\u5230\u76f8\u540c\u5219\u76f4\u63a5\u8fd4\u56de\n        curA = curA.next;\n        curB = curB.next;\n    }\n    return curA;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6ce8\u610f\u8fd9\u91cc\u7684\u64cd\u4f5c!<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;curA, curB] = &#91;curB, curA];\n&#91;lenA, lenB] = &#91;lenB, lenA];<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u662f\u5229\u7528<strong>\u89e3\u6784\u8d4b\u503c<\/strong>\u8fdb\u884c\u6570\u636e\u4ea4\u6362  \u56fa\u5b9acurA\u4e3a\u6700\u957f\u94fe\u8868\u7684\u5934\uff0clenA\u4e3a\u5176\u957f\u5ea6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f20\u7edf\u65b9\u6cd5\u4f7f\u7528temp\u4f5c\u4e3a\u4e2d\u95f4\u53d8\u91cf \u5f88\u4e0d\u7f8e\u89c2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u79cd\u5199\u6cd5\u4f7f\u7528\u4e86&nbsp;<strong>ES6 \u7684\u89e3\u6784\u8d4b\u503c\uff08Destructuring Assignment\uff09<\/strong>\uff0c\u5b83\u6bd4\u4f20\u7edf\u7684&nbsp;<code>temp<\/code>&nbsp;\u4e2d\u95f4\u53d8\u91cf\u65b9\u6cd5\u66f4\u52a0<strong>\u7b80\u6d01\u548c\u4f18\u96c5<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5de5\u4f5c\u539f\u7406\u76f8\u5f53\u4e8e\u521b\u5efa\u4e86\u4e00\u4e2a\u4e34\u65f6\u6570\u7ec4tempArray<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u76f8\u5f53\u4e8e\uff1a\nlet tempArray = &#91;bLen, aLen];\naLen = tempArray&#91;0];  \/\/ \u7b2c\u4e00\u4e2a\u503c\u8d4b\u7ed9 aLen\nbLen = tempArray&#91;1];  \/\/ \u7b2c\u4e8c\u4e2a\u503c\u8d4b\u7ed9 bLen\n\n\/\/ \u4f46\u5f15\u64ce\u4f1a\u4f18\u5316\u8fd9\u4e2a\u8fc7\u7a0b\uff0c\u4e0d\u4f1a\u771f\u7684\u521b\u5efa\u4e34\u65f6\u6570\u7ec4\n\/\/ \u5fc5\u987b\u8981\u52a0\u5206\u53f7! \u5426\u5219\u76f8\u5f53\u4e8e&#91;curA, curB] = &#91;curB, curA]&#91;lenA, lenB] = &#91;lenB, lenA] \n\/\/ \u8fd9\u4e0d\u662f\u6211\u4eec\u60f3\u8981\u7684\u6548\u679c!\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u6784\u8d4b\u503c\u7684\u5176\u4ed6\u5e94\u7528<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u4ea4\u6362\u591a\u4e2a\u53d8\u91cf\n&#91;a, b, c] = &#91;c, a, b];\n\n\/\/ \u51fd\u6570\u8fd4\u56de\u591a\u4e2a\u503c\nfunction getValues() { return &#91;1, 2, 3]; }\nconst &#91;x, y, z] = getValues();\n\n\/\/ \u5bf9\u8c61\u89e3\u6784\nconst {name, age} = person;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u73af\u5f62\u94fe\u8868 \u54c8\u5e0c\u8868 or \u4f9d\u65e7\u5feb\u6162\u6307\u9488<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/linked-list-cycle-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u54c8\u5e0c\u8868<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u4eec\u904d\u5386\u94fe\u8868\u4e2d\u7684\u6bcf\u4e2a\u8282\u70b9\uff0c\u5e76\u5c06\u5b83\u8bb0\u5f55\u4e0b\u6765\uff1b\u4e00\u65e6\u9047\u5230\u4e86\u6b64\u524d\u904d\u5386\u8fc7\u7684\u8282\u70b9\uff0c\u5c31\u53ef\u4ee5\u5224\u5b9a\u94fe\u8868\u4e2d\u5b58\u5728\u73af  \u501f\u52a9\u54c8\u5e0c\u8868\u53ef\u4ee5\u5f88\u65b9\u4fbf\u5730\u5b9e\u73b0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6b64\u64cd\u4f5c\u53ef\u4ee5\u5229\u7528JS\u4e2d\u7684\u5185\u7f6e\u5bf9\u8c61Set\u8f7b\u677e\u5b9e\u73b0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var detectCycle = function(head) {\n    const visted = new Set()\n    while(head!==null){\n        if(visted.has(head)){\n            return head\n        }\n        visted.add(head)\n        head = head.next\n    }\n    return null\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">\u5feb\u6162\u6307\u9488<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.\u5224\u65ad\u94fe\u8868\u662f\u5426\u6709\u73af<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u4f7f\u7528\u5feb\u6162\u6307\u9488\u6cd5\uff0c\u5206\u522b\u5b9a\u4e49 fast \u548c slow \u6307\u9488\uff0c<strong>\u4ece\u5934\u7ed3\u70b9\u51fa\u53d1\uff0cfast\u6307\u9488\u6bcf\u6b21\u79fb\u52a8\u4e24\u4e2a\u8282\u70b9\uff0cslow\u6307\u9488\u6bcf\u6b21\u79fb\u52a8\u4e00\u4e2a\u8282\u70b9\uff0c\u5982\u679c fast \u548c slow\u6307\u9488\u5728\u9014\u4e2d\u76f8\u9047 \uff0c\u8bf4\u660e\u8fd9\u4e2a\u94fe\u8868\u6709\u73af<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4ec0\u4e48fast \u8d70\u4e24\u4e2a\u8282\u70b9\uff0cslow\u8d70\u4e00\u4e2a\u8282\u70b9\uff0c\u6709\u73af\u7684\u8bdd\uff0c\u4e00\u5b9a\u4f1a\u5728\u73af\u5185\u76f8\u9047\u5462\uff0c\u800c\u4e0d\u662f\u6c38\u8fdc\u7684\u9519\u5f00\u5462?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u7b2c\u4e00\u70b9\uff1a<strong>fast\u6307\u9488\u4e00\u5b9a\u5148\u8fdb\u5165\u73af\u4e2d\uff0c\u5982\u679cfast\u6307\u9488\u548cslow\u6307\u9488\u76f8\u9047\u7684\u8bdd\uff0c\u4e00\u5b9a\u662f\u5728\u73af\u4e2d\u76f8\u9047\uff0c\u8fd9\u662f\u6bcb\u5eb8\u7f6e\u7591\u7684<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u4e48\u6765\u770b\u4e00\u4e0b\uff0c<strong>\u4e3a\u4ec0\u4e48fast\u6307\u9488\u548cslow\u6307\u9488\u4e00\u5b9a\u4f1a\u76f8\u9047\u5462\uff1f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u662f\u56e0\u4e3afast\u662f\u8d70\u4e24\u6b65\uff0cslow\u662f\u8d70\u4e00\u6b65\uff0c<strong>\u5176\u5b9e\u76f8\u5bf9\u4e8eslow\u6765\u8bf4\uff0cfast\u662f\u4e00\u4e2a\u8282\u70b9\u4e00\u4e2a\u8282\u70b9\u7684\u9760\u8fd1slow\u7684<\/strong>\uff0c\u6240\u4ee5fast\u4e00\u5b9a\u53ef\u4ee5\u548cslow\u91cd\u5408<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.\u5982\u679c\u6709\u73af \u5982\u4f55\u627e\u5230\u8fd9\u4e2a\u73af\u7684\u5165\u53e3?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u8bbe\u94fe\u8868\u4e2d\u73af\u5916\u90e8\u5206\u7684\u957f\u5ea6\u4e3a a\u3002slow \u6307\u9488\u8fdb\u5165\u73af\u540e\uff0c\u53c8\u8d70\u4e86 b \u7684\u8ddd\u79bb\u4e0e fast \u76f8\u9047\u3002\u6b64\u65f6\uff0cfast \u6307\u9488\u5df2\u7ecf\u8d70\u5b8c\u4e86\u73af\u7684 n \u5708\uff0c\u56e0\u6b64\u5b83\u8d70\u8fc7\u7684\u603b\u8ddd\u79bb\u4e3a a+n(b+c)+b=a+(n+1)b+nc<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-35-1024x576.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-35-1024x576.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1811\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6839\u636e\u9898\u610f\uff0c\u4efb\u610f\u65f6\u523b\uff0cfast \u6307\u9488\u8d70\u8fc7\u7684\u8ddd\u79bb\u90fd\u4e3a slow \u6307\u9488\u7684 2 \u500d<br>\u56e0\u6b64\uff0c\u6211\u4eec\u6709a+(n+1)b+nc=2(a+b)\u27f9a=c+(n\u22121)(b+c)<br>\u6709\u4e86 a=c+(n\u22121)(b+c) \u7684\u7b49\u91cf\u5173\u7cfb\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0\uff1a\u4ece\u76f8\u9047\u70b9\u5230\u5165\u73af\u70b9\u7684\u8ddd\u79bb\u52a0\u4e0a n\u22121 \u5708\u7684\u73af\u957f\uff0c\u6070\u597d\u7b49\u4e8e\u4ece\u94fe\u8868\u5934\u90e8\u5230\u5165\u73af\u70b9\u7684\u8ddd\u79bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var detectCycle = (head)=&gt; {\n    \/\/\u5982\u679c\u6ca1\u6709\u8282\u70b9\u6216\u8005\u53ea\u6709\u4e00\u4e2a\u8282\u70b9 \u5219\u80af\u5b9a\u65e0\u73af\n    if(!head || !head.next) return null;\n    \/\/\u5982\u679c\u5feb\u6162\u6307\u9488\u4e0d\u4f1a\u76f8\u9047 \u4e5f\u65e0\u73af\n    let slow =head.next, fast = head.next.next;\n    while(fast &amp;&amp; fast.next &amp;&amp; fast!== slow) {\n        slow = slow.next;\n        fast = fast.next.next; \n    }\n    if(!fast || !fast.next ) return null;\n    \/\/\u5df2\u7ecf\u786e\u5b9a\u6709\u73af \u6839\u636e\u6211\u4eec\u4e4b\u524d\u7684\u5206\u6790\u53bb\u627e\u5230\u73af\u7684\u5165\u53e3\u5373\u53ef\n    slow = head;\n    while (fast !== slow) {\n        slow = slow.next;\n        fast = fast.next;\n    }\n    return slow;\n};\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u54c8\u5e0c\u8868<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u6709\u6548\u7684\u5b57\u6bcd\u5f02\u4f4d\u8bcd \u5bf9\u8c61hashMap or \u6570\u7ec4hashMap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/valid-anagram\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6570\u7ec4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">charCodeAt() \u662f JavaScript \u5b57\u7b26\u4e32\u7684\u65b9\u6cd5\uff0c\u7528\u4e8e\u83b7\u53d6\u6307\u5b9a\u4f4d\u7f6e\u5b57\u7b26\u7684 Unicode \u7f16\u7801\u503c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4ec0\u4e48\u8981\u7528base?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u6ca1\u6709 base\uff0c\u4f60\u7684\u6570\u7ec4\u7d22\u5f15\u4f1a\u662f\uff1a<br>&#8220;a&#8221; -&gt; 97, &#8220;b&#8221; -&gt; 98, &#8230;, &#8220;z&#8221; -&gt; 122<br>\u8fd9\u610f\u5473\u7740\u4f60\u9700\u8981\u4e00\u4e2a\u957f\u5ea6\u4e3a123\u7684\u6570\u7ec4\uff0c\u800c\u4e0d\u662f26\uff01<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var isAnagram = function(s, t) {\n    if(s.length !== t.length) return false\n    const base = \"a\".charCodeAt()\n    const ret = new Array(26).fill(0)\n    for(const char of s) {\n        ret&#91;char.charCodeAt() - base]++\n    }\n    \n    for(const char of t){\n        if(!ret&#91;char.charCodeAt() -base])return false\n        ret&#91;char.charCodeAt() -base]--\n    }\n    return true\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5bf9\u8c61<\/strong> <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const initHashMap = (len,str) =&gt;{\n    const hashMap = {}\n    for(let i = 0;i&lt;len ;i++){\n        hashMap&#91;str&#91;i]] = (hashMap&#91;str&#91;i]] || 0) + 1\n    }\n    return hashMap\n}\n\nvar isAnagram = function(s, t) {\n    if (s.length !== t.length) return false\n    let len = s.length\n    const mapS = initHashMap(len,s)\n    const mapT = initHashMap(len,t)\n    for(const char in mapS){\n        if(mapS&#91;char] !== mapT&#91;char]){\n            return false\n        }\n    }\n    return true\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">for&#8230;of \u4e0d\u80fd\u76f4\u63a5\u904d\u5386\u666e\u901a\u5bf9\u8c61<br>mapS \u662f\u4e00\u4e2a\u5bf9\u8c61\uff0c\u800c for&#8230;of \u53ea\u80fd\u7528\u4e8e\u53ef\u8fed\u4ee3\u5bf9\u8c61\uff08\u5982\u6570\u7ec4\u3001\u5b57\u7b26\u4e32\u3001Map\u3001Set\u7b49\uff09\uff0c\u4e0d\u80fd\u76f4\u63a5\u7528\u4e8e\u666e\u901a\u5bf9\u8c61<br>\u8981\u7528for&#8230;in \u904d\u5386\u666e\u901a\u5bf9\u8c61\u7684\u952e <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e24\u4e2a\u6570\u7ec4\u7684\u4ea4\u96c6 Set\u64cd\u4f5c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/intersection-of-two-arrays\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8001\u5b9e\u4eba<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function intersection(nums1: number&#91;], nums2: number&#91;]): number&#91;] {\n    let resSet : Set&lt;number&gt; = new Set()\n    let nums1Set : Set&lt;number&gt; = new Set(nums1)\n    \/\/ for(const n of nums2) {\n    \/\/     nums1Set.has(n) &amp;&amp; resSet.add(n);\n    \/\/ }\n    \/\/ \u5faa\u73af \u6bd4 \u8fed\u4ee3\u5668\u5feb\n    for (let i = nums2.length - 1; i &gt;= 0; i--) {\n        nums1Set.has(nums2&#91;i]) &amp;&amp; resSet.add(nums2&#91;i]);\n    }\n    \/\/return &#91;...resSet] \/\/\u5c06\u96c6\u5408\u8f6c\u6362\u4e3a\u6570\u7ec4\n    return Array.from(resSet) \/\/\u5c06\u96c6\u5408\u8f6c\u6362\u4e3a\u6570\u7ec4\n\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5c0f\u70ab\u6280<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const intersection = (nums1: number&#91;], nums2: number&#91;]):number&#91;]=&gt; {\n    return Array.from(new Set(nums1.filter(i =&gt; nums2.includes(i))))\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u5feb\u4e50\u6570 \u65e0\u9650\u5faa\u73af \u5fc5\u4f1a\u91cd\u73b0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/happy-number\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-36.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"316\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-36.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1830\" style=\"width:840px;height:auto\"  sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u89e3\u51b3\u95ee\u9898\u7684\u5173\u952e\u5c31\u5728\u4e8e <strong>\u65e0\u9650\u5faa\u73af<\/strong> \u8fd9\u610f\u5473\u7740 <strong>\u5982\u679c\u4e00\u4e2a\u6570\u4e0d\u662f\u5feb\u4e50\u6570 \u4e00\u4e2a\u8fc7\u7a0b\u7684\u7ed3\u679c\u503c\u5fc5\u4f1a\u91cd\u590d!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u6839\u636e\u8fd9\u4e2a\u6027\u8d28\u6765\u8fdb\u884c\u5224\u65ad \u5c06\u6bcf\u6b21\u7b97\u51fa\u6765\u7684\u7ed3\u679c\u653e\u5728\u4e00\u4e2aSet()\u4e2d \u5982\u679c\u91cd\u590d\u51fa\u73b0 \u5219\u8bf4\u660e \u8fd9\u4e2a\u6570\u4e0d\u662f\u5feb\u4e50\u6570!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b9\u6cd5\u4e00 <strong>\u4ee3\u6570\u6c42\u548c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function calcSum(val: number): number {\n    \/\/\u8ba1\u7b97\u4e00\u4e2a\u6570\u7684\u6bcf\u4e2a\u4f4d\u7f6e\u4e0a\u6570\u5b57\u7684\u5e73\u65b9\u548c\n    let sum = 0 \n    while(val) {\n        let num = val % 10\n        sum+= num**2\n        val = Math.floor((val\/10))\n    }\n    return sum\n}\nfunction isHappy(n: number): boolean {\n    let storeSet: Set&lt;number&gt; = new Set()\n    while (n !== 1 &amp;&amp; !storeSet.has(n)) {\n        storeSet.add(n);\n        n = calcSum(n);\n    }\n    return n === 1;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b9\u6cd5\u4e8c <strong>\u8f6c\u4e3a\u5b57\u7b26\u4e32\u4f7f\u7528reduce\u6c42\u548c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nfunction calcSum(val: number): number {\n    \/\/\u8ba1\u7b97\u4e00\u4e2a\u6570\u7684\u6bcf\u4e2a\u4f4d\u7f6e\u4e0a\u6570\u5b57\u7684\u5e73\u65b9\u548c\n    <strong>return String(val).split(\"\").reduce((pre, cur) =&gt; (pre + Number(cur) * Number(cur)), 0)<\/strong>\n}\n\nfunction isHappy(n: number): boolean {\n    let storeSet: Set&lt;number&gt; = new Set()\n    while (n !== 1 &amp;&amp; !storeSet.has(n)) {\n        storeSet.add(n);\n        n = calcSum(n);\n    }\n    return n === 1;\n};<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7f8e\u5999!<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e24\u6570\u4e4b\u548c \u7ecf\u5178\u8001\u9898 Map\u53d1\u529b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/two-sum\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u518d\u5f3a\u8c03\u4e00\u4e0b&nbsp;<strong>\u4ec0\u4e48\u65f6\u5019\u4f7f\u7528\u54c8\u5e0c\u6cd5<\/strong>\uff0c\u5f53\u6211\u4eec\u9700\u8981\u67e5\u8be2\u4e00\u4e2a\u5143\u7d20\u662f\u5426\u51fa\u73b0\u8fc7\uff0c\u6216\u8005\u4e00\u4e2a\u5143\u7d20\u662f\u5426\u5728\u96c6\u5408\u91cc\u7684\u65f6\u5019\uff0c\u5c31\u8981\u7b2c\u4e00\u65f6\u95f4\u60f3\u5230\u54c8\u5e0c\u6cd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u672c\u9898\uff0c\u6211\u4eec\u4e0d\u4ec5\u8981\u77e5\u9053\u5143\u7d20\u6709\u6ca1\u6709\u904d\u5386\u8fc7\uff0c\u8fd8\u8981\u77e5\u9053\u8fd9\u4e2a\u5143\u7d20\u5bf9\u5e94\u7684\u4e0b\u6807\uff0c<strong>\u9700\u8981\u4f7f\u7528 key value\u7ed3\u6784\u6765\u5b58\u653e\uff0ckey\u6765\u5b58\u5143\u7d20\uff0cvalue\u6765\u5b58\u4e0b\u6807\uff0c\u90a3\u4e48\u4f7f\u7528map\u6b63\u5408\u9002<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Map\u64cd\u4f5c\u4ee5\u53caMap\u548c\u5bf9\u8c61\u7684\u533a\u522b<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Map\u7684\u57fa\u672c\u64cd\u4f5c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const map = new Map();\n\n\/\/ \u6dfb\u52a0\/\u8bbe\u7f6e\u5143\u7d20\nmap.set('name', 'John');\nmap.set(1, 'number one');\nmap.set({id: 1}, 'object key');\n\n\/\/ \u83b7\u53d6\u5143\u7d20\nmap.get('name'); \/\/ 'John'\nmap.get('nonexistent'); \/\/ undefined\n\n\/\/ \u68c0\u67e5\u662f\u5426\u5b58\u5728\nmap.has('name'); \/\/ true\n\n\/\/ \u5220\u9664\u5143\u7d20\nmap.delete('name');\n\n\/\/ \u6e05\u7a7a Map\nmap.clear();\n\n\/\/ \u83b7\u53d6\u5143\u7d20\u6570\u91cf\nmap.size; \/\/ 0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Map\u7684\u904d\u5386\u64cd\u4f5c<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const map = new Map(&#91;&#91;'a', 1], &#91;'b', 2], &#91;'c', 3]]); \/\/\u4f7f\u7528\u4e8c\u7ef4\u6570\u7ec4\u521b\u5efaMap\n\n\/\/ for...of \u904d\u5386\nfor (let &#91;key, value] of map) {\n    console.log(key, value);\n}\n\n\/\/ \u53ea\u904d\u5386\u952e\nfor (let key of map.keys()) {\n    console.log(key);\n}\n\n\/\/ \u53ea\u904d\u5386\u503c\nfor (let value of map.values()) {\n    console.log(value);\n}\n\n\/\/ \u904d\u5386\u952e\u503c\u5bf9\nfor (let &#91;key, value] of map.entries()) {\n    console.log(key, value);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Map\u7684\u8f6c\u6362\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const map = new Map(&#91;&#91;'a', 1], &#91;'b', 2]]);\n\n\/\/ \u8f6c\u4e3a\u6570\u7ec4\nArray.from(map); \/\/ &#91;&#91;'a', 1], &#91;'b', 2]]\nArray.from(map.keys()); \/\/ &#91;'a', 'b']\nArray.from(map.values()); \/\/ &#91;1, 2]\n\n\/\/ \u8f6c\u4e3a\u5bf9\u8c61\nObject.fromEntries(map); \/\/ {a: 1, b: 2}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Map\u4e0eObject<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u952e\u7684\u7c7b\u578b<\/strong>\uff1aMap \u7684\u952e\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\uff0cObject \u7684\u952e\u53ea\u80fd\u662f\u5b57\u7b26\u4e32\u6216 Symbol<\/li>\n\n\n\n<li><strong>\u987a\u5e8f\u4fdd\u8bc1<\/strong>\uff1aMap \u4fdd\u6301\u63d2\u5165\u987a\u5e8f<\/li>\n\n\n\n<li><strong>\u5927\u5c0f\u83b7\u53d6<\/strong>\uff1aMap \u6709 size \u5c5e\u6027\uff0cObject \u9700\u8981\u624b\u52a8\u8ba1\u7b97<\/li>\n\n\n\n<li><strong>\u6027\u80fd<\/strong>\uff1a\u9891\u7e41\u589e\u5220\u64cd\u4f5c\u65f6 Map \u6027\u80fd\u66f4\u597d<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">\u8fc7\u7a0b\u6a21\u62df<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-38-1024x592.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"592\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-38-1024x592.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1838\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-39.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1014\" height=\"608\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-39.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1839\"  sizes=\"auto, (max-width: 1014px) 100vw, 1014px\" \/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>function twoSum(nums: number&#91;], target: number): number&#91;] {\n    \/\/\u5efa\u7acb\u4e00\u4e2a\u4ece\u6570\u503c\u6620\u5c04\u5230\u7d22\u5f15\u7684Map\n    const valueToIndex: Map&lt;number,number&gt; = new Map() \n    \n    for(let i = 0;i&lt;nums.length;i++){\n        let element = target - nums&#91;i] \/\/\u770b\u770b\u9700\u8981\u4ec0\u4e48\u6570\u5b57\n        if(valueToIndex.get(element) !== undefined){ \/\/\u5982\u679c\u9700\u8981\u7684\u6570\u5b57\u5b58\u5728 \n            return &#91;valueToIndex.get(element),i] \/\/\u8fd4\u56de\u4e24\u4e2a\u6570\u7684\u7d22\u5f15\n        } \n        valueToIndex.set(nums&#91;i],i) \/\/\u82e5\u9700\u8981\u7684\u6570\u4e0d\u5b58\u5728 \u5c31\u5c06\u5f53\u524d\u6570\u5b57\u548c\u7d22\u5f15\u5b58\u5165Map\n    }\n    return &#91;] \/\/\u4e00\u76f4\u6ca1\u627e\u5230\u90a3\u5c31\u8fd4\u56de\u4e00\u4e2a\u7a7a\u6570\u7ec4\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u6570\u76f8\u52a0 II  \u7a7a\u95f4\u6362\u65f6\u95f4  \u4e24\u4e24\u5206\u7ec4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/4sum-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const fourSumCount = (A, B, C, D) =&gt; {\n    const countAB = new Map() \/\/\u521b\u5efa\u4e00\u4e2aMap \u5b58\u653e(\u524d\u4e24\u4e2a\u6570\u7ec4\u548c : \u51fa\u73b0\u6b21\u6570)\n    A.forEach(u =&gt; B.forEach(v =&gt; countAB.set(u + v, (countAB.get(u + v) || 0) + 1)))\/\/\u6784\u5efaMap\n    let ans = 0\n    for (let u of C) {\n        for (let v of D) {\n            if (countAB.has(-u - v)) {\n                ans += countAB.get(-u - v)\n            }\n        }\n    }\n    return ans\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u8d4e\u91d1\u4fe1 Map or \u6570\u7ec4\u54c8\u5e0c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/ransom-note\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-40.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1023\" height=\"729\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-40.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1847\"  sizes=\"auto, (max-width: 1023px) 100vw, 1023px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Map<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528\u4e00\u4e2amap\u8bb0\u5f55ransomNote\u4e2d\u51fa\u73b0\u7684\u5b57\u6bcd\u4e2a\u6570  \u7136\u540e\u904d\u5386magazine\u8fdb\u884c\u64cd\u4f5c <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u51fa\u73b0\u4e00\u6b21\u4e00\u6837\u7684\u5b57\u6bcd\u5c31\u5728map\u4e2d\u51cf\u5c11\u5bf9\u5e94\u7684\u5b57\u6bcd\u51fa\u73b0\u5b57\u6570 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c\u51fa\u73b0\u6b21\u6570\u4e3a0 \u5c31\u5728map\u4e2d\u5220\u9664\u8fd9\u4e2a\u5b57\u6bcd <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\u5982\u679cmap\u7684size\u4e3a0\u5c31\u8bf4\u660e\u6ee1\u8db3\u6761\u4ef6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var canConstruct = function(ransomNote, magazine) {\n   if(ransomNote.length &gt; magazine.length)return false\n   const countMap = new Map()  \/\/\u5efa\u7acbmap \u8bb0\u5f55ransomNote\u4e2d\u5404\u5b57\u6bcd\u51fa\u73b0\u6b21\u6570\n\n    \/\/\u586b\u5145map\n    for(const char of ransomNote){\n        countMap.set(char,(countMap.get(char) || 0) + 1)\n    }\n    \/\/magazine\u4e0emap\u8fdb\u884c\u6bd4\u5bf9\n    for(const char of magazine){\n        if(countMap.has(char)){\n            \/\/\u8bbe\u7f6eremaining\u53d8\u91cf\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u64cd\u4f5c\n            const remaining = countMap.get(char) - 1\n            \n            if( remaining === 0 ) {\n                countMap.delete(char)\n            }\n            else {\n                countMap.set(char,remaining)\n            }\n\n            if(countMap.size === 0)return true \/\/\u5df2\u7ecf\u6ee1\u8db3!\u63d0\u524d\u8fd4\u56de\n        }\n    }\n    return countMap.size === 0\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6570\u7ec4\u6a21\u62df<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u601d\u8def\u5dee\u4e0d\u591a \u4e0d\u4ed4\u7ec6\u8bf4\u4e86<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var canConstruct = function(ransomNote, magazine) {\n   const map = new Array(26).fill(0)\n   const base = \"a\".charCodeAt()\n\n   for(let i = 0 ;i&lt;magazine.length;i++){\n        map&#91;magazine&#91;i].charCodeAt() - base]++\n   }\n\n   for(let i = 0 ;i&lt;ransomNote.length;i++){\n        const index = ransomNote&#91;i].charCodeAt() - base\n        if(!map&#91;index])return false\n        map&#91;index]--\n   }\n\n   return true  \n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e09\u6570\u4e4b\u548c \u54c8\u5e0c\u8868\u4e0d\u4fbf -&gt; \u53cc\u6307\u9488!<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/3sum\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u54c8\u5e0c\u8868\u53bb\u91cd\u5f88\u9ebb\u70e6 \u8fd9\u91cc\u6539\u7528\u53cc\u6307\u9488!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b97\u6cd5\u590d\u6742\u5ea6O(n^2)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9e\u73b0\u601d\u8def\u5982\u4e0b\u56fe<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/file1.kamacoder.com\/i\/algo\/15.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.gif\">https:\/\/file1.kamacoder.com\/i\/algo\/15.%E4%B8%89%E6%95%B0%E4%B9%8B%E5%92%8C.gif<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u53cc\u6307\u9488 &#8211;&gt; \u5148\u6392\u5e8f!<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u9700\u8981\u8fdb\u884c\u53bb\u91cd\u64cd\u4f5c<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function threeSum(nums: number&#91;]): number&#91;]&#91;] {\n   <strong> nums.sort((a, b) =&gt; a - b);<\/strong> \/\/\u6392\u5e8f\n    let length = nums.length;\n    let left: number = 0,\n        right: number = length - 1;\n    let resArr: number&#91;]&#91;] = &#91;];\n    for (let i = 0; i &lt; length; i++) {\n    \tif (nums&#91;i]&gt;0) {\n            return resArr; \/\/nums\u7ecf\u8fc7\u6392\u5e8f\u540e\uff0c\u53ea\u8981nums&#91;i]&gt;0, \u6b64\u540e\u7684nums&#91;i] + nums&#91;left] + nums&#91;right]\u5747\u5927\u4e8e0,\u53ef\u4ee5\u63d0\u524d\u7ec8\u6b62\u5faa\u73af\u3002\t\n\t}\n       <strong> if (i &gt; 0 &amp;&amp; nums&#91;i] === nums&#91;i - 1]) {\n            continue;\n        } \/\/\u548c\u524d\u4e00\u4e2a\u76f8\u7b49\u5c31\u4e0d\u5fc5\u518d\u8003\u8651\u4e86<\/strong>\n        left = i + 1;\n        right = length - 1;\n        while (left &lt; right) {\n            let total: number = nums&#91;i] + nums&#91;left] + nums&#91;right];\n           <strong> if (total === 0) {\n                resArr.push(&#91;nums&#91;i], nums&#91;left], nums&#91;right]]);\n                left++;\n                right--;\n                while (nums&#91;right] === nums&#91;right + 1]) {\n                    right--; \/\/\u76f8\u7b49\u5c31\u4e0d\u7528\u518d\u8003\u8651\u4e86\n                }\n                while (nums&#91;left] === nums&#91;left - 1]) {\n                    left++; \/\/\u76f8\u7b49\u5c31\u4e0d\u7528\u518d\u8003\u8651\u4e86\n                }\n            }<\/strong> else if (total &lt; 0) {\n                left++;\n            } else {\n                right--;\n            }\n        }\n    }\n    return resArr;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7591\u95ee:  \u4e3a\u4ec0\u4e48\u4e24\u6570\u4e4b\u548c\u4e0d\u7528\u53cc\u6307\u9488??<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u56e0\u4e3a\u6b64\u9898\u9700\u8981\u8fd4\u56de\u6ee1\u8db3\u60c5\u51b5\u7684\u6570\u7684\u6570\u7ec4 \u53ef\u4ee5\u8fdb\u884c\u6392\u5e8f\u64cd\u4f5c  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u800c\u4e24\u6570\u4e4b\u548c\u7684\u9898\u8981\u6c42\u8fd4\u56de\u4e0b\u6807 \u4f7f\u7528\u53cc\u6307\u9488\u8fdb\u884c\u6392\u5e8f\u540e\u4e0b\u6807\u5c31\u6df7\u4e71\u4e86<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u56db\u6570\u4e4b\u548c \u601d\u8def\u4e00\u81f4 \u4f9d\u65e7\u53cc\u6307<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/4sum\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var fourSum = function(nums, target) {\n    const len = nums.length;\n    if(len &lt; 4) return &#91;];\n    nums.sort((a, b) =&gt; a - b);\n    const res = &#91;];\n    for(let i = 0; i &lt; len - 3; i++) {\n        \/\/ \u53bb\u91cdi\n        if(i &gt; 0 &amp;&amp; nums&#91;i] === nums&#91;i - 1]) continue;\n        for(let j = i + 1; j &lt; len - 2; j++) {\n            \/\/ \u53bb\u91cdj\n            if(j &gt; i + 1 &amp;&amp; nums&#91;j] === nums&#91;j - 1]) continue;\n            let l = j + 1, r = len - 1;\n            while(l &lt; r) {\n                const sum = nums&#91;i] + nums&#91;j] + nums&#91;l] + nums&#91;r];\n                if(sum &lt; target) { l++; continue}\n                if(sum &gt; target) { r--; continue}\n                res.push(&#91;nums&#91;i], nums&#91;j], nums&#91;l], nums&#91;r]]);\n\t\t\n\t\t\/\/ \u5bf9nums&#91;left]\u548cnums&#91;right]\u53bb\u91cd\n                while(l &lt; r &amp;&amp; nums&#91;l] === nums&#91;++l]);\n                while(l &lt; r &amp;&amp; nums&#91;r] === nums&#91;--r]);\n            }\n        } \n    }\n    return res;\n};<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b57\u7b26\u4e32<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cd\u8f6c\u5b57\u7b26\u4e32 \u76f4\u63a5\u8c03\u5e93 or \u53cc\u6307\u9488<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/reverse-string\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6781\u7b80\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const reverseString = s =&gt; s.reverse()<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6ce8\u610f:  \u5b57\u7b26\u4e32\u672c\u8eab\u662f\u6ca1\u6709reverse\u65b9\u6cd5\u7684 \u4f46\u662f\u6570\u7ec4\u662f\u6709\u7684 \u4e0d\u8981\u641e\u6df7\u4e86<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u53cc\u6307\u9488<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u7406\u5f88\u7b80\u5355 \u5e76\u4e0d\u591a\u8bf4\u4e86<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function reverseString(s: string&#91;]): void {\n    let l:number = 0\n    let r:number = s.length - 1\n    while(l&lt;r){\n        &#91;s&#91;l],s&#91;r]] = &#91;s&#91;r],s&#91;l]]\n        l++\n        r--\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cd\u8f6c\u5b57\u7b26\u4e32II \u5206\u5757\u6cbb\u4e4b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/reverse-string-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u7684\u60f3\u6cd5\u662f\u628a\u5b57\u7b26\u4e32\u6bcfk\u4e2a\u5206\u4e3a\u4e00\u7ec4 \u6bcf\u7ec4\u5206\u5f00\u5904\u7406<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7136\u540e\u6839\u636e\u9898\u76ee\u7279\u6027 \u5982\u679c\u8fd9\u4e00\u7ec4\u662f\u7b2c\u5947\u6570\u7ec4 \u90a3\u4e48\u5c31\u8981\u8fdb\u884c\u7ffb\u8f6c <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\u518d\u628a\u6240\u6709\u7684\u5b57\u7b26\u4e32\u62fc\u5230\u4e00\u8d77\u5c31\u53ef\u4ee5\u4e86<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u7528\u5230\u4e86<strong>\u5b57\u7b26\u4e32\u7684slice()\u65b9\u6cd5 &#8211;&gt; \u622a\u53d6\u5b50\u4e32<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var reverseStr = function(s, k) {\n    const result = &#91;];\n    for (let i = 0; i &lt; s.length; i += k) {\n        let block = s.slice(i, i + k);\n        \/\/ slice(start, end) -&gt; \u63d0\u53d6\u5b50\u5b57\u7b26\u4e32\t\n        \/\/ \"hello\".slice(1, 3) \u2192 \"el\"\n        \/\/ \u6bcf\u9694\u4e00\u5757\u53cd\u8f6c\u4e00\u6b21\uff08\u5947\u6570\u7d22\u5f15\u5757\u53cd\u8f6c\uff09\n        if (Math.floor(i \/ k) % 2 === 0) {\n            block = block.split('').reverse().join('');\n        }\n        result.push(block);\n    }\n    return result.join('');\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u53e6\u4e00\u65b9\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var reverseStr = function(s, k) {\n    const len = s.length;\n    let resArr = s.split(\"\"); \n    for(let i = 0; i &lt; len; i += 2 * k) {  \/\/ \u6bcf\u9694 2k \u4e2a\u5b57\u7b26\u7684\u524d k \u4e2a\u5b57\u7b26\u8fdb\u884c\u53cd\u8f6c\n        let l = i - 1, r = i + k &gt; len ? len : i + k;\n        while(++l &lt; --r) &#91;resArr&#91;l], resArr&#91;r]] = &#91;resArr&#91;r], resArr&#91;l]];\n    }\n    return resArr.join(\"\");\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u66ff\u6362\u6570\u5b57  \u76f4\u63a5\u5224\u65ad or \u6269\u5bb9\u8d4b\u503c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/kamacoder.com\/problempage.php?pid=1064\" target=\"_blank\" rel=\"noreferrer noopener\">\u5361\u7801\u7f51\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u76f4\u63a5\u5224\u65ad<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const readline = require('readline');\nconst rl = readline.createInterface({ input: process.stdin, output: process.stdout });\n\nrl.on('line', line =&gt; console.log(line.replace(\/\\d\/g, 'number')));<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6269\u5bb9\u8d4b\u503c<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-42-458x1024.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"458\" height=\"1024\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/09\/image-42-458x1024.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1858\" style=\"width:840px;height:auto\"  sizes=\"auto, (max-width: 458px) 100vw, 458px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u6269\u5145\u6570\u7ec4\u5230\u6bcf\u4e2a\u6570\u5b57\u5b57\u7b26\u66ff\u6362\u6210 &#8220;number&#8221; \u4e4b\u540e\u7684\u5927\u5c0f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5982 \u5b57\u7b26\u4e32 &#8220;a5b&#8221; \u7684\u957f\u5ea6\u4e3a3\uff0c\u90a3\u4e48 \u5c06 \u6570\u5b57\u5b57\u7b26\u53d8\u6210\u5b57\u7b26\u4e32 &#8220;number&#8221; \u4e4b\u540e\u7684\u5b57\u7b26\u4e32\u4e3a &#8220;anumberb&#8221; \u957f\u5ea6\u4e3a 8<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4ec0\u4e48\u8981\u4ece\u540e\u5411\u524d\u586b\u5145\uff0c\u4ece\u524d\u5411\u540e\u586b\u5145\u4e0d\u884c\u4e48\uff1f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ece\u524d\u5411\u540e\u586b\u5145\u5c31\u662fO(n^2)\u7684\u7b97\u6cd5\u4e86\uff0c\u56e0\u4e3a\u6bcf\u6b21\u6dfb\u52a0\u5143\u7d20\u90fd\u8981\u5c06\u6dfb\u52a0\u5143\u7d20\u4e4b\u540e\u7684\u6240\u6709\u5143\u7d20\u6574\u4f53\u5411\u540e\u79fb\u52a8<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5176\u5b9e\u5f88\u591a\u6570\u7ec4\u586b\u5145\u7c7b\u7684\u95ee\u9898\uff0c\u5176\u505a\u6cd5\u90fd\u662f\u5148\u9884\u5148\u7ed9\u6570\u7ec4\u6269\u5bb9\u5e26\u586b\u5145\u540e\u7684\u5927\u5c0f\uff0c\u7136\u540e\u5728\u4ece\u540e\u5411\u524d\u8fdb\u884c\u64cd\u4f5c<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e48\u505a\u6709\u4e24\u4e2a\u597d\u5904\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u4e0d\u7528\u7533\u8bf7\u65b0\u6570\u7ec4\u3002<\/li>\n\n\n\n<li>\u4ece\u540e\u5411\u524d\u586b\u5145\u5143\u7d20\uff0c\u907f\u514d\u4e86\u4ece\u524d\u5411\u540e\u586b\u5145\u5143\u7d20\u65f6\uff0c\u6bcf\u6b21\u6dfb\u52a0\u5143\u7d20\u90fd\u8981\u5c06\u6dfb\u52a0\u5143\u7d20\u4e4b\u540e\u7684\u6240\u6709\u5143\u7d20\u5411\u540e\u79fb\u52a8\u7684\u95ee\u9898<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>const readline = require(\"readline\");\n\nconst rl = readline.createInterface({\n    input: process.stdin,\n    output: process.stdout\n})\n\nfunction main() {\n    const num0 = \"0\".charCodeAt();\n    const num9 = \"9\".charCodeAt();\n    const a = \"a\".charCodeAt();\n    const z = \"z\".charCodeAt();\n    function isAZ(str) {\n        return str &gt;= a &amp;&amp; str &lt;= z;\n    }\n    function isNumber(str) {\n        return str &gt;= num0 &amp;&amp; str &lt;= num9;\n    }\n    rl.on(\"line\", (input) =&gt; {\n        let n = 0;\n        for (let i = 0; i &lt; input.length; i++) {\n            const val = input&#91;i].charCodeAt();\n            if (isNumber(val)) {\n                n += 6;\n            }\n            if (isAZ(val)) {\n                n++;\n            }\n        }\n        const ans = new Array(n).fill(0);\n        let index = input.length - 1;\n        for (let i = n - 1; i &gt;= 0; i--) {\n            const val = input&#91;index].charCodeAt();\n            if (isAZ(val)) {\n                ans&#91;i] = input&#91;index];\n            }\n            if (isNumber(val)) {\n                ans&#91;i] = \"r\";\n                ans&#91;i - 1] = \"e\";\n                ans&#91;i - 2] = \"b\";\n                ans&#91;i - 3] = \"m\";\n                ans&#91;i - 4] = \"u\";\n                ans&#91;i - 5] = \"n\";\n                i -= 5;\n            }\n            index--;\n        }\n        console.log(ans.join(\"\"));\n    })\n}\n\nmain();<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u53cd\u8f6c\u5b57\u7b26\u4e32\u4e2d\u7684\u5355\u8bcd \u79fb\u9664\u7a7a\u683c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/reverse-words-in-a-string\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u7684\u65b9\u6cd5 \u7b80\u5355\u6613\u61c2<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var reverseWords = function(s) {\n    const str = s.trim().split(' ').reverse()\n    const strArray = str.filter(item =&gt; item.length !==0)\n    return strArray.join(' ')\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u66f4\u7b80\u5355\u7684\u5199\u6cd5 LeetCode\u5b98\u65b9\u9898\u89e3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var reverseWords = function(s) {\n    return s.trim().split(\/\\s+\/).reverse().join(' ')\n    \/\/  <strong>\/\\s+\/ \u7684\u610f\u601d\u662f\uff1a\u5339\u914d\u4e00\u4e2a\u6216\u591a\u4e2a\u7a7a\u767d\u5b57\u7b26 \u6b63\u5219\u8868\u8fbe\u5f0f<\/strong>\n};\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u53f3\u65cb\u5b57\u7b26\u4e32 \u53cd\u8f6c\u518d\u53cd\u8f6c!<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/kamacoder.com\/problempage.php?pid=1065\" target=\"_blank\" rel=\"noreferrer noopener\">\u5361\u7801\u7f51\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u7684\u505a\u6cd5 \u7533\u8bf7\u4e86\u989d\u5916\u7a7a\u95f4 \u65f6\u95f4\u590d\u6742\u5ea6O(n)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const readline = require('readline');\n\nconst rl = readline.createInterface({\n    input: process.stdin,\n    output: process.stdout\n});\n\nlet lineCount = 0;\nlet k;\nlet str;\n\nrl.on('line', (line) =&gt; {\n    if (lineCount === 0) {\n        k = Number(line.trim());\n        lineCount++;\n    } else {\n        str = line.trim();\n        rl.close(); \/\/ \u8bfb\u53d6\u5230\u7b2c\u4e8c\u884c\u540e\u5173\u95ed\n    }\n})\n\nrl.on('close', () =&gt; {\n    const len = str.length\n    let after = ''\n    let before = ''\n    let res = ''\n    for (let i = 0; i &lt; len - k; i++) {\n        after += str&#91;i]\n    }\n    for (let i = len - k; i &lt; len; i++) {\n        before += str&#91;i]\n    }\n    res+=before\n    res+=after\n    console.log(res)\n})<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5982\u679c<strong>\u8981\u6c42\u4e0d\u7533\u8bf7\u989d\u5916\u7a7a\u95f4<\/strong> \u5c31\u8981\u60f3\u5230\u522b\u7684\u529e\u6cd5<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u5148\u7ed9\u6574\u4f53\u5b57\u7b26\u4e32\u53cd\u8f6c <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u518d\u7ed9\u4e24\u6bb5\u5206\u522b\u53cd\u8f6c \u8fd9\u6837\u5c31\u53ef\u4ee5\u5b9e\u73b0O(1)\u7a7a\u95f4\u590d\u6742\u5ea6\u89e3\u51b3\u95ee\u9898<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fc7\u7a0b\u4e3a:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">abcdefg &#8212;&gt; gfedcba &#8211;&gt; fgabcde<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const readline = require('readline');\n\nconst rl = readline.createInterface({\n    input: process.stdin,\n    output: process.stdout\n});\n\nlet lineCount = 0;\nlet k;\nlet str;\n\nrl.on('line', (line) =&gt; {\n    if (lineCount === 0) {\n        k = Number(line.trim());\n        lineCount++;\n    } else {\n        str = line.trim();\n        rl.close();\n    }\n});\n\nrl.on('close', () =&gt; {\n    \/\/ \u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u7ec4\u4ee5\u4fbf\u539f\u5730\u64cd\u4f5c\n    const arr = str.split('');\n    const len = arr.length;\n    \n    \/\/ \u5904\u7406k\u5927\u4e8e\u5b57\u7b26\u4e32\u957f\u5ea6\u7684\u60c5\u51b5\n    k = k % len;\n    \n    if (k === 0) {\n        console.log(str);\n        return;\n    }\n    \n    \/\/ \u4e09\u6b21\u53cd\u8f6c\u6cd5\n    \/\/ 1. \u53cd\u8f6c\u6574\u4e2a\u5b57\u7b26\u4e32\n    reverse(arr, 0, len - 1);\n    \/\/ 2. \u53cd\u8f6c\u524dk\u4e2a\u5b57\u7b26\n    reverse(arr, 0, k - 1);\n    \/\/ 3. \u53cd\u8f6c\u5269\u4f59\u5b57\u7b26\n    reverse(arr, k, len - 1);\n    \n    console.log(arr.join(''));\n});\n\n\/\/ \u539f\u5730\u53cd\u8f6c\u6570\u7ec4\u7684\u8f85\u52a9\u51fd\u6570\nfunction reverse(arr, start, end) {\n    while (start &lt; end) {\n        const temp = arr&#91;start];\n        arr&#91;start] = arr&#91;end];\n        arr&#91;end] = temp;\n        start++;\n        end--;\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6ce8\u610f!!!<\/strong> \u8981\u5bf9\u6570\u7ec4\u8fdb\u884c\u53cd\u8f6c\u64cd\u4f5c \u800c\u4e0d\u662f\u5bf9\u5b57\u7b26\u4e32\u8fdb\u884c\u53cd\u8f6c!!!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u539f\u56e0\u5982\u4e0b:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>\u5b57\u7b26\u4e32\u4e0d\u53ef\u53d8\u6027<\/strong>\uff1aJavaScript\u4e2d\u7684\u5b57\u7b26\u4e32\u662f\u4e0d\u53ef\u53d8\u7684\uff08immutable\uff09\uff0c\u4f60\u4e0d\u80fd\u50cf\u6570\u7ec4\u90a3\u6837\u76f4\u63a5\u901a\u8fc7\u7d22\u5f15\u4fee\u6539\u5b57\u7b26\u4e32\u4e2d\u7684\u5b57\u7b26\u3002<code>str[start] = str[end]<\/code>&nbsp;\u8fd9\u6837\u7684\u64cd\u4f5c\u4e0d\u4f1a\u5b9e\u9645\u6539\u53d8\u5b57\u7b26\u4e32\u3002<\/li>\n\n\n\n<li><strong>\u53c2\u6570\u7c7b\u578b\u4e0d\u5339\u914d<\/strong>\uff1a<code>reverse<\/code>\u51fd\u6570\u671f\u671b\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u6570\u7ec4\uff08\u53ef\u4fee\u6539\uff09\uff0c\u4f46\u4f60\u4f20\u5165\u7684\u662f\u5b57\u7b26\u4e32\uff08\u4e0d\u53ef\u4fee\u6539\uff09\u3002<\/li>\n\n\n\n<li><strong>\u89e3\u6784\u8d4b\u503c\u95ee\u9898<\/strong>\uff1a\u5373\u4f7f\u4f20\u5165\u6570\u7ec4\uff0c<code>[str[end], str[start]] = [str[start], str[end]]<\/code>&nbsp;\u8fd9\u79cd\u5199\u6cd5\u5728\u5b57\u7b26\u4e32\u4e0a\u4e5f\u4e0d\u8d77\u4f5c\u7528\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">KMP\u7b97\u6cd5 &#8230;&#8230; \u6682\u65f6\u6401\u7f6e<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\">\u6808\u4e0e\u961f\u5217<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u7528\u6808\u5b9e\u73b0\u961f\u5217<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/implement-queue-using-stacks\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9700\u8981\u4e24\u4e2a\u6808<strong>\u4e00\u4e2a\u8f93\u5165\u6808\uff0c\u4e00\u4e2a\u8f93\u51fa\u6808<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728push\u6570\u636e\u7684\u65f6\u5019\uff0c\u53ea\u8981\u6570\u636e\u653e\u8fdb\u8f93\u5165\u6808\u5c31\u597d\uff0c<strong>\u4f46\u5728pop\u7684\u65f6\u5019\uff0c\u64cd\u4f5c\u5c31\u590d\u6742\u4e00\u4e9b\uff0c\u8f93\u51fa\u6808\u5982\u679c\u4e3a\u7a7a\uff0c\u5c31\u628a\u8fdb\u6808\u6570\u636e\u5168\u90e8\u5bfc\u5165\u8fdb\u6765\uff08\u6ce8\u610f\u662f\u5168\u90e8\u5bfc\u5165\uff09<\/strong>\uff0c\u518d\u4ece\u51fa\u6808\u5f39\u51fa\u6570\u636e\uff0c\u5982\u679c\u8f93\u51fa\u6808\u4e0d\u4e3a\u7a7a\uff0c\u5219\u76f4\u63a5\u4ece\u51fa\u6808\u5f39\u51fa\u6570\u636e\u5c31\u53ef\u4ee5\u4e86<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\u5982\u4f55\u5224\u65ad\u961f\u5217\u4e3a\u7a7a\u5462\uff1f<strong>\u5982\u679c\u8fdb\u6808\u548c\u51fa\u6808\u90fd\u4e3a\u7a7a\u7684\u8bdd\uff0c\u8bf4\u660e\u6a21\u62df\u7684\u961f\u5217\u4e3a\u7a7a\u4e86<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var MyQueue = function() {\n   this.stackIn = &#91;];\n   this.stackOut = &#91;];\n};\n\n\nMyQueue.prototype.push = function(x) {\n   this.stackIn.push(x);\n};\n\n\nMyQueue.prototype.pop = function() {\n   const size = this.stackOut.length;\n   if(size) {\n       return this.stackOut.pop();\n   }\n   while(this.stackIn.length) {\n       this.stackOut.push(this.stackIn.pop());\n   }\n   return this.stackOut.pop();\n};\n\n\nMyQueue.prototype.peek = function() {\n   const x = this.pop();\n   this.stackOut.push(x);\n   return x;\n};\n\n\nMyQueue.prototype.empty = function() {\n   return !this.stackIn.length &amp;&amp; !this.stackOut.length\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u6709\u6548\u7684\u62ec\u53f7 \u6808\u7684\u7ecf\u5178\u9898\u76ee<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/valid-parentheses\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6b63\u5e38\u505a\u6cd5<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const isValid = (s) =&gt; {\n    const stack = &#91;]\n    for (const char of s) {\n        if (char === '(' || char === '{' || char === '&#91;') {\n            stack.push(char)\n        } else if (char === ')' || char === '}' || char === ']') {\n            \/\/ \u8fd8\u9700\u8981\u68c0\u67e5\u6808\u9876\u662f\u5426\u5339\u914d\n            const top = stack&#91;stack.length - 1]\n            if (\n                (char === ')' &amp;&amp; top === '(') ||\n                (char === '}' &amp;&amp; top === '{') ||\n                (char === ']' &amp;&amp; top === '&#91;')\n            ) {\n                stack.pop()\n            }else {\n                return false\n            }\n        }\n    }\n    return stack.length === 0\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u7b80\u5316\u505a\u6cd5 &#8212;&gt; \u4f7f\u7528Map<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const isValid = (s) =&gt; {\n    const stack = &#91;]\n    const map = {\n        '(': ')',\n        '&#91;': ']',\n        '{': '}'\n    }\n    for (const char of s) {\n        if (char in map) { stack.push(char); continue }\n        if (map&#91;stack.pop()] !== char) {\n            return false\n        }\n    }\n    return stack.length === 0\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u52a8\u6001\u89c4\u5212<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5bf9\u4e8e\u52a8\u6001\u89c4\u5212\u95ee\u9898\uff0c\u53ef\u4ee5\u62c6\u89e3\u4e3a\u5982\u4e0b\u4e94\u6b65\u66f2\uff0c\u8fd9\u4e94\u6b65\u90fd\u641e\u6e05\u695a\u4e86\uff0c\u624d\u80fd\u8bf4\u628a\u52a8\u6001\u89c4\u5212\u771f\u7684\u638c\u63e1\u4e86\uff01<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u786e\u5b9adp\u6570\u7ec4\uff08dp table\uff09\u4ee5\u53ca\u4e0b\u6807\u7684\u542b\u4e49<\/li>\n\n\n\n<li>\u786e\u5b9a\u9012\u63a8\u516c\u5f0f<\/li>\n\n\n\n<li>dp\u6570\u7ec4\u5982\u4f55\u521d\u59cb\u5316<\/li>\n\n\n\n<li>\u786e\u5b9a\u904d\u5386\u987a\u5e8f<\/li>\n\n\n\n<li>\u4e3e\u4f8b\u63a8\u5bfcdp\u6570\u7ec4<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u6590\u6ce2\u90a3\u5951\u6570 \u7ecf\u5178\u5165\u95e8<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e76\u4e0d\u591a\u8bf4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const fib = (n) =&gt; {\n    const dp = new Array(n + 1).fill(0)\n    dp&#91;0] = 0\n    dp&#91;1] = 1\n    for (let i = 2; i &lt;= n; i++) {\n        dp&#91;i] = dp&#91;i - 1] + dp&#91;i - 2]\n    }\n    return dp&#91;n]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u722c\u697c\u68af\u95ee\u9898 \u4f9d\u65e7\u7ecf\u5178<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/climbing-stairs\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5e76\u4e0d\u591a\u8bf4<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var climbStairs = function (n) {\n    \/\/ dp&#91;i] : \u722c\u5230\u7b2ci\u9636\u68af \u53ef\u4ee5\u7684\u65b9\u6cd5\u6570\n    const dp = new Array(n + 1).fill(0)\n    dp&#91;1] = 1\n    dp&#91;2] = 2\n    for (let i = 3; i &lt;= n; i++) {\n        dp&#91;i] = dp&#91;i - 1] + dp&#91;i - 2]\n    }\n    return dp&#91;n]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f7f\u7528\u6700\u5c0f\u82b1\u8d39\u722c\u697c\u68af \u4f9d\u65e7\u7ecf\u5178<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/min-cost-climbing-stairs\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var minCostClimbingStairs = function(cost) {\n  const dp = &#91;0, 0]\n  for (let i = 2; i &lt;= cost.length; ++i) {\n    dp&#91;i] = Math.min(dp&#91;i - 1] + cost&#91;i - 1], dp&#91;i - 2] + cost&#91;i - 2])\n  }\n  return dp&#91;cost.length]\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-2-1024x342.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"342\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-2-1024x342.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1978\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e0d\u540c\u8def\u5f84 \u4f9d\u65e7\u7ecf\u5178<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/unique-paths\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-3.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"960\" height=\"645\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-3.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1981\"  sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>var uniquePaths = function(m, n) {\n    const dp = Array(m).fill().map(item =&gt; Array(n))\n\n    for (let i = 0; i &lt; m; ++i) {\n        dp&#91;i]&#91;0] = 1\n    }\n\n    for (let i = 0; i &lt; n; ++i) {\n        dp&#91;0]&#91;i] = 1\n    }\n\n    for (let i = 1; i &lt; m; ++i) {\n        for (let j = 1; j &lt; n; ++j) {\n            dp&#91;i]&#91;j] = dp&#91;i - 1]&#91;j] + dp&#91;i]&#91;j - 1]\n        }\n    }\n    return dp&#91;m - 1]&#91;n - 1]\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e0d\u540c\u5b57\u7b26\u2161 \u8def\u4e0a\u6709\u969c\u788d \u521d\u59cb\u5316\u63a7\u5236<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/unique-paths-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6211\u539f\u672c\u8fd8\u662f\u6309\u7167\u4e0a\u4e00\u9898\u7684\u65b9\u6cd5\u53bb\u521d\u59cb\u5316 \u4f46\u662f\u95ee\u9898\u5f88\u591a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u4ee5\u53ef\u4ee5\u5728\u521d\u59cb\u5316\u7684\u65f6\u5019\u52a0\u4e0a\u4e00\u4e2a\u6761\u4ef6 \u53ea\u6709\u4e0d\u4e3a\u969c\u788d\u65f6\u624d\u521d\u59cb\u5316\u4e3a1 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u6ee1\u8db3\u521d\u59cb\u5316\u6761\u4ef6\u7684\u5faa\u73af\u76f4\u63a5\u7ec8\u6b62\u5373\u53ef \u56e0\u4e3a\u8fd9\u6761\u8def\u5df2\u7ecf\u884c\u4e0d\u901a\u4e86!!! \u76f4\u63a5\u820d\u5f03 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e5f\u5c31\u662f\u8bf4\u5982\u679c\u53ea\u770b\u4e00\u6761\u76f4\u7ebf\u7ebf\u8def \u4e0a\u9762\u6709\u4e00\u4e2a\u969c\u788d \u90a3\u540e\u9762\u7684\u5c31\u4f1a\u5168\u4e3a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var uniquePathsWithObstacles = function (obstacleGrid) {\n    const m = obstacleGrid.length\n    const n = obstacleGrid&#91;0].length\n    const dp = Array(m).fill().map(item =&gt; Array(n).fill(0))\n\n    for (let i = 0; i &lt; m &amp;&amp; obstacleGrid&#91;i]&#91;0] === 0; ++i) {\n        dp&#91;i]&#91;0] = 1\n    }\n\n    for (let i = 0; i &lt; n &amp;&amp; obstacleGrid&#91;0]&#91;i] === 0; ++i) {\n        dp&#91;0]&#91;i] = 1\n    }\n\n    for (let i = 1; i &lt; m; ++i) {\n        for (let j = 1; j &lt; n; ++j) {\n            dp&#91;i]&#91;j] = obstacleGrid&#91;i]&#91;j] === 1 ? 0 : dp&#91;i - 1]&#91;j] + dp&#91;i]&#91;j - 1]\n        }\n    }\n\n    return dp&#91;m - 1]&#91;n - 1]\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f8b\u5b50:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>console.log(uniquePathsWithObstacles(&#91;&#91;0, 1, 0, 0, 0], &#91;1, 0, 0, 0, 0], &#91;0, 0, 0, 0, 0], &#91;0, 0, 0, 0, 0]]))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u521d\u59cb\u5316\u540e\u7684dp\u6570\u7ec4\u957f\u8fd9\u6837<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[<br>[ 1, <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">0<\/mark><\/strong>, 0, 0, 0 ],<br>[ <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">0<\/mark><\/strong>, 0, 0, 0, 0 ],<br>[ 0, 0, 0, 0, 0 ],<br>[ 0, 0, 0, 0, 0 ]<br>]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u7ea2\u8272\u5904\u5c31\u5df2\u7ecf\u88ab\u622a\u65ad  \u540e\u9762\u7684\u503c\u5168\u4e3a0!!!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u6574\u6570\u62c6\u5206 \u600e\u4e48\u62c6?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/integer-break\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-7.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"429\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-7.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1996\"  sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.\u786e\u5b9adp\u6570\u7ec4\u542b\u4e49<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[i]\uff1a\u5206\u62c6\u6570\u5b57i\uff0c\u53ef\u4ee5\u5f97\u5230\u7684\u6700\u5927\u4e58\u79ef\u4e3adp[i]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.\u786e\u5b9a\u9012\u63a8\u516c\u5f0f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u4ece1\u904d\u5386j\uff0c\u7136\u540e\u6709\u4e24\u79cd\u6e20\u9053\u5f97\u5230dp[i]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u4e2a\u662fj * (i &#8211; j) \u76f4\u63a5\u76f8\u4e58(\u62c6\u6210\u4e24\u4e2a\u6570\u76f8\u4e58)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u4e2a\u662fj * dp[i &#8211; j]\uff0c\u76f8\u5f53\u4e8e\u662f\u62c6\u5206(i &#8211; j) (\u62c6\u6210\u4e09\u4e2a\u53ca\u4ee5\u4e0a\u7684\u6570\u76f8\u4e58)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6240\u4ee5\u9012\u63a8\u516c\u5f0f\uff1adp[i] = max({dp[i], (i &#8211; j) * j, dp[i &#8211; j] * j})<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.dp\u6570\u7ec4\u521d\u59cb\u5316<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[2] = 1\uff0c\u4ecedp[i]\u7684\u5b9a\u4e49\u6765\u8bf4\uff0c\u62c6\u5206\u6570\u5b572\uff0c\u5f97\u5230\u7684\u6700\u5927\u4e58\u79ef\u662f1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.\u786e\u5b9a\u904d\u5386\u987a\u5e8f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5148\u6765\u770b\u770b\u9012\u5f52\u516c\u5f0f\uff1adp[i] = max(dp[i], max((i &#8211; j) * j, dp[i &#8211; j] * j));<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[i] \u662f\u4f9d\u9760 dp[i &#8211; j]\u7684\u72b6\u6001\uff0c\u6240\u4ee5\u904d\u5386i\u4e00\u5b9a\u662f\u4ece\u524d\u5411\u540e\u904d\u5386\uff0c\u5148\u6709dp[i &#8211; j]\u518d\u6709dp[i]<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for (int i = 3; i &lt;= n ; i++) {\n    for (int j = 1; j &lt;= i \/ 2; j++) {\n        dp&#91;i] = max(dp&#91;i], max((i - j) * j, dp&#91;i - j] * j));\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cci\/2\u662f\u6839\u636e\u5bf9\u79f0\u6027\u6240\u5f97 \u907f\u514d\u91cd\u590d\u8ba1\u7b97 <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e5f\u56e0\u4e3a<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u4e58\u79ef\u6700\u5927\u5316\u7684\u95ee\u9898\uff0c\u62c6\u5206\u7684\u6570\u5b57\u5c3d\u53ef\u80fd\u63a5\u8fd1\u65f6\u4e58\u79ef\u6700\u5927\uff08\u4f8b\u5982 <code>3 * 3 = 9<\/code>\u6bd4 <code>2 * 4 = 8<\/code>\u5927\uff09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u56e0\u6b64\uff0c<code>j<\/code>\u548c <code>i - j<\/code>\u8d8a\u63a5\u8fd1\uff0c\u4e58\u79ef\u8d8a\u5927  <code>j<\/code>\u8d85\u8fc7 <code>i \/ 2<\/code>\u540e\uff0c<code>i - j<\/code>\u4f1a\u5c0f\u4e8e <code>j<\/code>\uff0c\u6b64\u65f6\u4e58\u79ef\u4e0d\u4f1a\u6bd4 <code>j &lt;= i \/ 2<\/code>\u65f6\u66f4\u5927<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.\u4e3e\u4f8b\u63a8\u5bfcdp\u6570\u7ec4<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-8.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"348\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-8.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-1997\"  sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u5206\u6790\u5b8c\u6bd5 \u4ee3\u7801\u5982\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var integerBreak = function(n) {\n    let dp = new Array(n + 1).fill(0)\n    dp&#91;2] = 1\n\n    for(let i = 3; i &lt;= n; i++) {\n        for(let j = 1; j &lt;= i \/ 2; j++) {\n            dp&#91;i] = Math.max(dp&#91;i], dp&#91;i - j] * j, (i - j) * j)\n        }\n    }\n    return dp&#91;n]\n};<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u6253\u5bb6\u52ab\u820d \u60f3\u597ddp\u6570\u7ec4\u542b\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/house-robber\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-11-1024x631.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"631\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-11-1024x631.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2019\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.\u786e\u5b9adp\u6570\u7ec4\u4ee5\u53ca\u4e0b\u6807\u7684\u542b\u4e49<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[i]\uff1a<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u8003\u8651\u4e0b\u6807i\uff08\u5305\u62eci\uff09\u4ee5\u5185\u7684\u623f\u5c4b<\/mark><\/strong>\uff0c\u6700\u591a\u53ef\u4ee5\u5077\u7a83\u7684\u91d1\u989d\u4e3adp[i]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.\u786e\u5b9a\u9012\u63a8\u516c\u5f0f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u51b3\u5b9adp[i]\u7684\u56e0\u7d20\u5c31\u662f<strong>\u7b2ci\u623f\u95f4\u5077\u8fd8\u662f\u4e0d\u5077<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dp&#91;i] = max(dp&#91;i - 2] + nums&#91;i], dp&#91;i - 1])<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.dp\u6570\u7ec4\u521d\u59cb\u5316<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[0] \u4e00\u5b9a\u662f nums[0]\uff0cdp[1]\u5c31\u662fnums[0]\u548cnums[1]\u7684\u6700\u5927\u503c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.\u786e\u5b9a\u904d\u5386\u987a\u5e8f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[i] \u662f\u6839\u636edp[i &#8211; 2] \u548c dp[i &#8211; 1] \u63a8\u5bfc\u51fa\u6765\u7684\uff0c\u90a3\u4e48\u4e00\u5b9a\u662f\u4ece\u524d\u5230\u540e\u904d\u5386<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.\u4e3e\u4f8b\u63a8\u5bfcdp\u6570\u7ec4<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-12.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"784\" height=\"436\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-12.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2021\"  sizes=\"auto, (max-width: 784px) 100vw, 784px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const rob = (nums) =&gt; {\n    const dp = new Array(nums.length).fill(0)\n    dp&#91;0] = nums&#91;0]\n    dp&#91;1] = Math.max(nums&#91;0], nums&#91;1])\n    for (let i = 2; i &lt; nums.length; i++) {\n        dp&#91;i] = Math.max(dp&#91;i - 2] + nums&#91;i], dp&#91;i - 1])\n    }\n    return dp&#91;nums.length - 1]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u6253\u5bb6\u52ab\u820d\u2161 \u623f\u5c4b\u56f4\u4e00\u5708\u518d\u53bb\u5077<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/house-robber-ii\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u529b\u6263\u9898\u76ee\u94fe\u63a5<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u4e00\u4e2a\u6570\u7ec4\uff0c\u6210\u73af\u7684\u8bdd\u4e3b\u8981\u6709\u5982\u4e0b\u4e09\u79cd\u60c5\u51b5:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u60c5\u51b5\u4e00\uff1a\u8003\u8651\u4e0d\u5305\u542b\u9996\u5c3e\u5143\u7d20<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/file1.kamacoder.com\/i\/algo\/20210129160748643-20230310134000692.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/file1.kamacoder.com\/i\/algo\/20210129160748643-20230310134000692.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"213.\u6253\u5bb6\u52ab\u820dII\"\/><\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u60c5\u51b5\u4e8c\uff1a\u8003\u8651\u5305\u542b\u9996\u5143\u7d20\uff0c\u4e0d\u5305\u542b\u5c3e\u5143\u7d20<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/file1.kamacoder.com\/i\/algo\/20210129160821374-20230310134003961.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/file1.kamacoder.com\/i\/algo\/20210129160821374-20230310134003961.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"213.\u6253\u5bb6\u52ab\u820dII1\"\/><\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u60c5\u51b5\u4e09\uff1a\u8003\u8651\u5305\u542b\u5c3e\u5143\u7d20\uff0c\u4e0d\u5305\u542b\u9996\u5143\u7d20<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/file1.kamacoder.com\/i\/algo\/20210129160842491-20230310134008133.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/file1.kamacoder.com\/i\/algo\/20210129160842491-20230310134008133.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"213.\u6253\u5bb6\u52ab\u820dII2\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u60c5\u51b5\u4e8c \u548c \u60c5\u51b5\u4e09 \u90fd\u5305\u542b\u4e86\u60c5\u51b5\u4e00\u4e86\uff0c\u6240\u4ee5\u53ea\u8003\u8651\u60c5\u51b5\u4e8c\u548c\u60c5\u51b5\u4e09\u5c31\u53ef\u4ee5\u4e86<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u60c5\u51b5\u4e00\u4e8c\u4e09\u662f<strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">\u201c\u8003\u8651\u201d<\/mark><\/strong>\u7684\u8303\u56f4\uff0c\u800c\u5177\u4f53\u623f\u95f4\u5077\u4e0e\u4e0d\u5077\u4ea4\u7ed9\u9012\u63a8\u516c\u5f0f\u53bb\u6289\u62e9<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5206\u6790\u5230\u8fd9\u91cc \u672c\u9898\u5c31\u7b80\u5355\u4e86 \u5269\u4e0b\u7684\u548c\u4e0a\u4e00\u9898\u4e00\u6837<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>JS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var rob = function (nums) {\n    const n = nums.length\n    if (n === 0) return 0\n    if (n === 1) return nums&#91;0]\n    const result1 = robRange(nums, 0, n - 2)\n    const result2 = robRange(nums, 1, n - 1)\n    return Math.max(result1, result2)\n};\n\nconst robRange = (nums, start, end) =&gt; {\n    if (end === start) return nums&#91;start]\n    const dp = Array(nums.length).fill(0)\n    dp&#91;start] = nums&#91;start]\n    dp&#91;start + 1] = Math.max(nums&#91;start], nums&#91;start + 1])\n    for (let i = start + 2; i &lt;= end; i++) {\n        dp&#91;i] = Math.max(dp&#91;i - 2] + nums&#91;i], dp&#91;i - 1])\n    }\n    return dp&#91;end]\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">01\u80cc\u5305&#8212;01\u4e8c\u7ef4dp<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/kamacoder.com\/problempage.php?pid=1046\" target=\"_blank\" rel=\"noreferrer noopener\">\u5361\u7801\u7f51\u7b2c46\u9898<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6709n\u4ef6\u7269\u54c1\u548c\u4e00\u4e2a\u6700\u591a\u80fd\u80cc\u91cd\u91cf\u4e3aw \u7684\u80cc\u5305<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7b2ci\u4ef6\u7269\u54c1\u7684\u91cd\u91cf\u662fweight[i]\uff0c\u5f97\u5230\u7684\u4ef7\u503c\u662fvalue[i] <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6bcf\u4ef6\u7269\u54c1\u53ea\u80fd\u7528\u4e00\u6b21<\/strong>\uff0c\u6c42\u89e3\u5c06\u54ea\u4e9b\u7269\u54c1\u88c5\u5165\u80cc\u5305\u91cc\u7269\u54c1\u4ef7\u503c\u603b\u548c\u6700\u5927<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-17.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1014\" height=\"285\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-17.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2033\"  sizes=\"auto, (max-width: 1014px) 100vw, 1014px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1.\u786e\u5b9adp\u6570\u7ec4\u4ee5\u53ca\u4e0b\u6807\u7684\u542b\u4e49<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6709\u4e09\u4e2a\u7ef4\u5ea6 \u4ef7\u503c \u91cd\u91cf \u7269\u54c1  =&gt;  \u53ef\u4ee5\u6784\u5efa\u4e00\u4e2a\u4e8c\u7ef4\u8868<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-16.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"927\" height=\"585\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-16.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2032\"  sizes=\"auto, (max-width: 927px) 100vw, 927px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u91cc\u6bcf\u4e2a\u683c\u5b50\u90fd\u662f\u4e00\u4e2adp[i][j]<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>dp[i][j] \u8868\u793a\u4ece\u4e0b\u6807\u4e3a[0-i]\u7684\u7269\u54c1\u91cc\u4efb\u610f\u53d6\uff0c\u653e\u8fdb\u5bb9\u91cf\u4e3aj\u7684\u80cc\u5305\uff0c\u4ef7\u503c\u603b\u548c\u6700\u5927\u662f\u591a\u5c11<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>2.\u786e\u5b9a\u9012\u63a8\u516c\u5f0f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5206\u6210\u4e24\u79cd\u60c5\u51b5 \u9009\u8fd9\u4ef6\u7269\u54c1\u548c\u4e0d\u9009\u8fd9\u4ef6\u7269\u54c1<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4e0d\u9009\u7269\u54c1i<\/strong>\uff1a\u80cc\u5305\u5bb9\u91cf\u4e3aj\uff0c\u91cc\u9762\u4e0d\u653e\u7269\u54c1i\u7684\u6700\u5927\u4ef7\u503c\u662fdp[i &#8211; 1][j]<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-18.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"398\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-18.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2034\" style=\"width:840px;height:auto\"  sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/div><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9009\u7269\u54c1i<\/strong>\uff1a\u80cc\u5305\u7a7a\u51fa\u7269\u54c1i\u7684\u5bb9\u91cf\u540e\uff0c\u80cc\u5305\u5bb9\u91cf\u4e3aj &#8211; weight[i]\uff0cdp[i &#8211; 1][j &#8211; weight[i]] \u4e3a\u80cc\u5305\u5bb9\u91cf\u4e3aj &#8211; weight[i]\u4e14\u4e0d\u653e\u7269\u54c1i\u7684\u6700\u5927\u4ef7\u503c\uff0c\u90a3\u4e48dp[i &#8211; 1][j &#8211; weight[i]] + value[i] \uff08\u7269\u54c1i\u7684\u4ef7\u503c\uff09\uff0c\u5c31\u662f\u80cc\u5305\u653e\u7269\u54c1i\u5f97\u5230\u7684\u6700\u5927\u4ef7\u503c<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-19.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"674\" height=\"402\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-19.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2035\" style=\"width:840px;height:auto\"  sizes=\"auto, (max-width: 674px) 100vw, 674px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>3.dp\u6570\u7ec4\u521d\u59cb\u5316<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9996\u5148\u4ecedp[i][j]\u7684\u5b9a\u4e49\u51fa\u53d1\uff0c\u5982\u679c\u80cc\u5305\u5bb9\u91cfj\u4e3a0\u7684\u8bdd\uff0c\u5373dp[i][0]\uff0c\u65e0\u8bba\u662f\u9009\u53d6\u54ea\u4e9b\u7269\u54c1\uff0c\u80cc\u5305\u4ef7\u503c\u603b\u548c\u4e00\u5b9a\u4e3a0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">dp[0][j]\uff0c\u5373\uff1ai\u4e3a0\uff0c\u5b58\u653e\u7f16\u53f70\u7684\u7269\u54c1\u7684\u65f6\u5019\uff0c\u5404\u4e2a\u5bb9\u91cf\u7684\u80cc\u5305\u6240\u80fd\u5b58\u653e\u7684\u6700\u5927\u4ef7\u503c<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u4e48\u5f88\u660e\u663e\u5f53&nbsp;<code>j &lt; weight[0]<\/code>\u7684\u65f6\u5019\uff0cdp[0][j] \u5e94\u8be5\u662f 0\uff0c\u56e0\u4e3a\u80cc\u5305\u5bb9\u91cf\u6bd4\u7f16\u53f70\u7684\u7269\u54c1\u91cd\u91cf\u8fd8\u5c0f<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53<code>j &gt;= weight[0]<\/code>\u65f6\uff0cdp[0][j] \u5e94\u8be5\u662fvalue[0]\uff0c\u56e0\u4e3a\u80cc\u5305\u5bb9\u91cf\u653e\u8db3\u591f\u653e\u7f16\u53f70\u7269\u54c1<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>4.\u786e\u5b9a\u904d\u5386\u987a\u5e8f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5148\u904d\u5386 \u7269\u54c1\u8fd8\u662f\u5148\u904d\u5386\u80cc\u5305\u91cd\u91cf\u5462<\/strong>  <strong>\u90fd\u53ef\u4ee5<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u867d\u7136\u4e24\u4e2afor\u5faa\u73af\u904d\u5386\u7684\u6b21\u5e8f\u4e0d\u540c\uff0c\u4f46\u662fdp[i][j]\u6240\u9700\u8981\u7684\u6570\u636e\u5c31\u662f\u5de6\u4e0a\u89d2\uff0c\u6839\u672c\u4e0d\u5f71\u54cddp[i][j]\u516c\u5f0f\u7684\u63a8\u5bfc<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f46\u5148\u904d\u5386\u7269\u54c1\u518d\u904d\u5386\u80cc\u5305\u5bb9\u91cf\u8fd9\u4e2a\u987a\u5e8f\u66f4\u597d\u7406\u89e3<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for(int i = 1; i &lt; weight.size(); i++) { \/\/ \u904d\u5386\u7269\u54c1\n    for(int j = 0; j &lt;= bagweight; j++) { \/\/ \u904d\u5386\u80cc\u5305\u5bb9\u91cf\n        if (j &lt; weight&#91;i]) dp&#91;i]&#91;j] = dp&#91;i - 1]&#91;j];\n        else dp&#91;i]&#91;j] = max(dp&#91;i - 1]&#91;j], dp&#91;i - 1]&#91;j - weight&#91;i]] + value&#91;i]);\n\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>5.\u4e3e\u4f8b\u63a8\u5bfcdp\u6570\u7ec4<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-20.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"924\" height=\"575\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-20.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2036\"  sizes=\"auto, (max-width: 924px) 100vw, 924px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6700\u7ec8\u6838\u5fc3JS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for (let i = 1; i &lt; n; i++) {\n    for (let j = 0; j &lt;= bagweight; j++) {\n        if (j &lt; weight&#91;i]) {\n            dp&#91;i]&#91;j] = dp&#91;i - 1]&#91;j];\n        } else {\n            dp&#91;i]&#91;j] = Math.max(dp&#91;i - 1]&#91;j], dp&#91;i - 1]&#91;j - weight&#91;i]] + value&#91;i]);\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">01\u80cc\u5305&#8212;02\u6eda\u52a8\u6570\u7ec4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u89c2\u5bdf\u5230 \u6bcf\u884c\u8fd0\u7b97 \u53ea\u548c\u524d\u9762\u7684\u4e00\u884c\u6709\u5173\u7cfb \u8ddf\u518d\u524d\u9762\u7684\u6ca1\u5173\u7cfb<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u53ef\u4ee5\u5148\u8ba1\u7b97\u51fa\u7b2c\u4e00\u884c \u6839\u636e\u7b2c\u4e00\u884c\u8ba1\u7b97\u7b2c\u4e8c\u884c \u4ee5\u6b64\u7c7b\u63a8<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u6837\u4e00\u6765\u53ea\u8981\u8868\u793a\u4e0b\u4e00\u884c\u5c31\u53ef\u4ee5\u4e86 \u53ef\u4ee5\u51cf\u5c0f\u7a7a\u95f4\u590d\u6742\u5ea6<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> next&#91;j] = Math.max(value&#91;i] + result&#91;j - weight&#91;i]], result&#91;j])<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6700\u7ec8JS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-24-1024x913.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"913\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-24-1024x913.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2051\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u4e8c\u53c9\u6811<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7406\u8bba\u57fa\u7840<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7684\u904d\u5386\u65b9\u5f0f<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e8c\u53c9\u6811\u4e3b\u8981\u6709\u4e24\u79cd\u904d\u5386\u65b9\u5f0f\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u6df1\u5ea6\u4f18\u5148\u904d\u5386\uff1a\u5148\u5f80\u6df1\u8d70\uff0c\u9047\u5230\u53f6\u5b50\u8282\u70b9\u518d\u5f80\u56de\u8d70<\/li>\n\n\n\n<li>\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\uff1a\u4e00\u5c42\u4e00\u5c42\u7684\u53bb\u904d\u5386<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8fd9\u4e24\u79cd\u904d\u5386\u662f\u56fe\u8bba\u4e2d\u6700\u57fa\u672c\u7684\u4e24\u79cd\u904d\u5386\u65b9\u5f0f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u90a3\u4e48\u4ece\u6df1\u5ea6\u4f18\u5148\u904d\u5386\u548c\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\u8fdb\u4e00\u6b65\u62d3\u5c55\uff0c\u624d\u6709\u5982\u4e0b\u904d\u5386\u65b9\u5f0f\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6df1\u5ea6\u4f18\u5148\u904d\u5386\n<ul class=\"wp-block-list\">\n<li>\u524d\u5e8f\u904d\u5386\uff08\u9012\u5f52\u6cd5\uff0c\u8fed\u4ee3\u6cd5\uff09<\/li>\n\n\n\n<li>\u4e2d\u5e8f\u904d\u5386\uff08\u9012\u5f52\u6cd5\uff0c\u8fed\u4ee3\u6cd5\uff09<\/li>\n\n\n\n<li>\u540e\u5e8f\u904d\u5386\uff08\u9012\u5f52\u6cd5\uff0c\u8fed\u4ee3\u6cd5\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\n<ul class=\"wp-block-list\">\n<li>\u5c42\u6b21\u904d\u5386\uff08\u8fed\u4ee3\u6cd5\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728\u6df1\u5ea6\u4f18\u5148\u904d\u5386\u4e2d\uff1a\u6709\u4e09\u4e2a\u987a\u5e8f\uff0c\u524d\u4e2d\u540e\u5e8f\u904d\u5386<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u8fd9\u91cc\u524d\u4e2d\u540e\uff0c\u5176\u5b9e\u6307\u7684\u5c31\u662f\u4e2d\u95f4\u8282\u70b9\u7684\u904d\u5386\u987a\u5e8f<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u770b\u5982\u4e0b\u4e2d\u95f4\u8282\u70b9\u7684\u987a\u5e8f\uff0c\u5c31\u53ef\u4ee5\u53d1\u73b0\uff0c\u4e2d\u95f4\u8282\u70b9\u7684\u987a\u5e8f\u5c31\u662f\u6240\u8c13\u7684\u904d\u5386\u65b9\u5f0f<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u524d\u5e8f\u904d\u5386\uff1a\u4e2d\u5de6\u53f3<\/li>\n\n\n\n<li>\u4e2d\u5e8f\u904d\u5386\uff1a\u5de6\u4e2d\u53f3<\/li>\n\n\n\n<li>\u540e\u5e8f\u904d\u5386\uff1a\u5de6\u53f3\u4e2d<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/file1.kamacoder.com\/i\/algo\/20200806191109896.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/file1.kamacoder.com\/i\/algo\/20200806191109896.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\"\/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u6700\u540e\u518d\u8bf4\u4e00\u8bf4\u4e8c\u53c9\u6811\u4e2d\u6df1\u5ea6\u4f18\u5148\u548c\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\u5b9e\u73b0\u65b9\u5f0f\uff0c\u6211\u4eec\u505a\u4e8c\u53c9\u6811\u76f8\u5173\u9898\u76ee\uff0c\u7ecf\u5e38\u4f1a\u4f7f\u7528\u9012\u5f52\u7684\u65b9\u5f0f\u6765\u5b9e\u73b0\u6df1\u5ea6\u4f18\u5148\u904d\u5386\uff0c\u4e5f\u5c31\u662f\u5b9e\u73b0\u524d\u4e2d\u540e\u5e8f\u904d\u5386\uff0c\u4f7f\u7528\u9012\u5f52\u662f\u6bd4\u8f83\u65b9\u4fbf\u7684<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e4b\u524d\u6211\u4eec\u8bb2\u6808\u4e0e\u961f\u5217\u7684\u65f6\u5019\uff0c\u5c31\u8bf4\u8fc7\u6808\u5176\u5b9e\u5c31\u662f\u9012\u5f52\u7684\u4e00\u79cd\u5b9e\u73b0\u7ed3\u6784<\/strong>\uff0c\u4e5f\u5c31\u8bf4\u524d\u4e2d\u540e\u5e8f\u904d\u5386\u7684\u903b\u8f91\u5176\u5b9e\u90fd\u662f\u53ef\u4ee5\u501f\u52a9\u6808\u4f7f\u7528\u9012\u5f52\u7684\u65b9\u5f0f\u6765\u5b9e\u73b0\u7684<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u800c\u5e7f\u5ea6\u4f18\u5148\u904d\u5386\u7684\u5b9e\u73b0\u4e00\u822c\u4f7f\u7528\u961f\u5217\u6765\u5b9e\u73b0\uff0c\u8fd9\u4e5f\u662f\u961f\u5217\u5148\u8fdb\u5148\u51fa\u7684\u7279\u70b9\u6240\u51b3\u5b9a\u7684\uff0c\u56e0\u4e3a\u9700\u8981\u5148\u8fdb\u5148\u51fa\u7684\u7ed3\u6784\uff0c\u624d\u80fd\u4e00\u5c42\u4e00\u5c42\u7684\u6765\u904d\u5386\u4e8c\u53c9\u6811<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7684\u5b9a\u4e49 <\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class TreeNode {\n    public val: number\n    public left: TreeNode | null\n    public right: TreeNode | null\n    constructor(val?: number, left?: TreeNode, right?: TreeNode) {\n        this.val = val === undefined ? 0 : val\n        this.left = left === undefined ? null : left\n        this.right = right === undefined ? null : right\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7684\u9012\u5f52\u904d\u5386 &#8212; \u9012\u5f52\u904d\u5386\u4e0e\u8fed\u4ee3\u904d\u5386<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-preorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">144.\u4e8c\u53c9\u6811\u7684\u524d\u5e8f\u904d\u5386<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-postorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">145.\u4e8c\u53c9\u6811\u7684\u540e\u5e8f\u904d\u5386<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-inorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">94.\u4e8c\u53c9\u6811\u7684\u4e2d\u5e8f\u904d\u5386<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6bcf\u6b21\u5199\u9012\u5f52\uff0c\u90fd\u6309\u7167\u8fd9\u4e09\u8981\u7d20\u6765\u5199<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u786e\u5b9a\u9012\u5f52\u51fd\u6570\u7684\u53c2\u6570\u548c\u8fd4\u56de\u503c\uff1a<\/strong>&nbsp;\u786e\u5b9a\u54ea\u4e9b\u53c2\u6570\u662f\u9012\u5f52\u7684\u8fc7\u7a0b\u4e2d\u9700\u8981\u5904\u7406\u7684\uff0c\u90a3\u4e48\u5c31\u5728\u9012\u5f52\u51fd\u6570\u91cc\u52a0\u4e0a\u8fd9\u4e2a\u53c2\u6570\uff0c \u5e76\u4e14\u8fd8\u8981\u660e\u786e\u6bcf\u6b21\u9012\u5f52\u7684\u8fd4\u56de\u503c\u662f\u4ec0\u4e48\u8fdb\u800c\u786e\u5b9a\u9012\u5f52\u51fd\u6570\u7684\u8fd4\u56de\u7c7b\u578b<\/li>\n\n\n\n<li><strong>\u786e\u5b9a\u7ec8\u6b62\u6761\u4ef6\uff1a<\/strong>&nbsp;\u5199\u5b8c\u4e86\u9012\u5f52\u7b97\u6cd5, \u8fd0\u884c\u7684\u65f6\u5019\uff0c\u7ecf\u5e38\u4f1a\u9047\u5230\u6808\u6ea2\u51fa\u7684\u9519\u8bef\uff0c\u5c31\u662f\u6ca1\u5199\u7ec8\u6b62\u6761\u4ef6\u6216\u8005\u7ec8\u6b62\u6761\u4ef6\u5199\u7684\u4e0d\u5bf9\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e5f\u662f\u7528\u4e00\u4e2a\u6808\u7684\u7ed3\u6784\u6765\u4fdd\u5b58\u6bcf\u4e00\u5c42\u9012\u5f52\u7684\u4fe1\u606f\uff0c\u5982\u679c\u9012\u5f52\u6ca1\u6709\u7ec8\u6b62\uff0c\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u5b58\u6808\u5fc5\u7136\u5c31\u4f1a\u6ea2\u51fa<\/li>\n\n\n\n<li><strong>\u786e\u5b9a\u5355\u5c42\u9012\u5f52\u7684\u903b\u8f91\uff1a<\/strong>&nbsp;\u786e\u5b9a\u6bcf\u4e00\u5c42\u9012\u5f52\u9700\u8981\u5904\u7406\u7684\u4fe1\u606f\u3002\u5728\u8fd9\u91cc\u4e5f\u5c31\u4f1a\u91cd\u590d\u8c03\u7528\u81ea\u5df1\u6765\u5b9e\u73b0\u9012\u5f52\u7684\u8fc7\u7a0b<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TS\u4ee3\u7801<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \u524d\u5e8f\u904d\u5386\n\/\/ \u786e\u5b9a\u53c2\u6570\u548c\u8fd4\u56de\u503c \nfunction preorderTraversal(node: TreeNode | null): number&#91;] {\n    function traverse(node: TreeNode | null, res: number&#91;]): void {\n        if (node === null) return; \/\/ \u786e\u5b9a\u7ec8\u6b62\u6761\u4ef6\n        \/\/ \u5355\u5c42\u9012\u5f52\u903b\u8f91\n        res.push(node.val);\n        traverse(node.left, res);\n        traverse(node.right, res);\n    }\n    const res: number&#91;] = &#91;];\n    traverse(node, res);\n    return res;\n}\n\n\/\/ \u4e2d\u5e8f\u904d\u5386\nfunction inorderTraversal(node: TreeNode | null): number&#91;] {\n    function traverse(node: TreeNode | null, res: number&#91;]): void {\n        if (node === null) return;\n        traverse(node.left, res);\n        res.push(node.val);\n        traverse(node.right, res);\n    }\n    const res: number&#91;] = &#91;];\n    traverse(node, res);\n    return res;\n}\n\n\/\/ \u540e\u5e8f\u904d\u5386\nfunction postorderTraversal(node: TreeNode | null): number&#91;] {\n    function traverse(node: TreeNode | null, res: number&#91;]): void {\n        if (node === null) return;\n        traverse(node.left, res);\n        traverse(node.right, res);\n        res.push(node.val);\n    }\n    const res: number&#91;] = &#91;];\n    traverse(node, res);\n    return res;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7684\u8fed\u4ee3\u904d\u5386<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-preorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">144.\u4e8c\u53c9\u6811\u7684\u524d\u5e8f\u904d\u5386<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-postorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">145.\u4e8c\u53c9\u6811\u7684\u540e\u5e8f\u904d\u5386<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-inorder-traversal\/\" target=\"_blank\" rel=\"noreferrer noopener\">94.\u4e8c\u53c9\u6811\u7684\u4e2d\u5e8f\u904d\u5386<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4ee3\u7801\u793a\u4f8b<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-41-1024x568.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"568\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-41-1024x568.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2083\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4e8c\u53c9\u6811\u7ed3\u6784\u5982\u4e0b<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/214130917522443475292963b2980a1a.jpg'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"873\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/214130917522443475292963b2980a1a.jpg\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2084\"  sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-42-1024x739.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"739\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-42-1024x739.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2085\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-43-902x1024.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"1024\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-43-902x1024.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2086\"  sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-44-1024x739.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"739\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-44-1024x739.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2087\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-45.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"948\" height=\"568\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/10\/image-45.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2088\"  sizes=\"auto, (max-width: 948px) 100vw, 948px\" \/><\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u53c9\u6811\u7684\u5c42\u5e8f\u904d\u5386 &#8212; \u8f85\u52a9\u961f\u5217<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u56fe\u793a<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/file1.kamacoder.com\/i\/algo\/102%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.gif\">https:\/\/file1.kamacoder.com\/i\/algo\/102%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.gif<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u4ee3\u7801<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-1024x903.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"903\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-1024x903.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2228\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u56de\u6eaf\u7b97\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u7ec4\u5408\u95ee\u9898<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/leetcode.cn\/problems\/combinations\/description\/\">77. \u7ec4\u5408 &#8211; \u529b\u6263\uff08LeetCode\uff09<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-38.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"549\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-38.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2314\" style=\"width:840px;height:auto\"  sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u601d\u8def<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-39-1024x535.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-39-1024x535.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2315\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">JS\u4ee3\u7801<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var combine = function (n, k) {\n    \/\/ \u56de\u6eaf\u6cd5\n    let result = &#91;]\n    let path = &#91;]\n    let backtracking = (n, k, startIndex) =&gt; {\n        \/\/ \u7ec8\u6b62\u6761\u4ef6\n        if (path.length === k) {\n            result.push(path.slice());\n            return;\n        }\n        \/\/ \u5faa\u73af\u672c\u5c42\u96c6\u5408\u5143\u7d20\n        for (let i = startIndex; i &lt;= n; i++) {\n            path.push(i);\n            \/\/   \u9012\u5f52\n            backtracking(n, k, i + 1);\n            \/\/   \u56de\u6eaf\u64cd\u4f5c\n            path.pop();\n        }\n    };\n    backtracking(n, k, 1);\n    return result;\n}\n\nconsole.log(combine(4, 2))\n\/\/&#91; &#91; 1, 2 ], &#91; 1, 3 ], &#91; 1, 4 ], &#91; 2, 3 ], &#91; 2, 4 ], &#91; 3, 4 ] ]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u526a\u679d\u4f18\u5316<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-40-1024x680.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"680\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-40-1024x680.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2317\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u6240\u4ee5\uff0c\u53ef\u4ee5\u526a\u679d\u7684\u5730\u65b9\u5c31\u5728\u9012\u5f52\u4e2d\u6bcf\u4e00\u5c42\u7684for\u5faa\u73af\u6240\u9009\u62e9\u7684\u8d77\u59cb\u4f4d\u7f6e<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u5982\u679cfor\u5faa\u73af\u9009\u62e9\u7684\u8d77\u59cb\u4f4d\u7f6e\u4e4b\u540e\u7684\u5143\u7d20\u4e2a\u6570 \u5df2\u7ecf\u4e0d\u8db3 \u6211\u4eec\u9700\u8981\u7684\u5143\u7d20\u4e2a\u6570\u4e86\uff0c\u90a3\u4e48\u5c31\u6ca1\u6709\u5fc5\u8981\u641c\u7d22\u4e86<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u5df2\u7ecf\u9009\u62e9\u7684\u5143\u7d20\u4e2a\u6570\uff1apath.size();<\/li>\n\n\n\n<li>\u6240\u9700\u9700\u8981\u7684\u5143\u7d20\u4e2a\u6570\u4e3a: k &#8211; path.size();<\/li>\n\n\n\n<li>\u5217\u8868\u4e2d\u5269\u4f59\u5143\u7d20\uff08n-i\uff09 >= \u6240\u9700\u9700\u8981\u7684\u5143\u7d20\u4e2a\u6570\uff08k &#8211; path.size()\uff09<\/li>\n\n\n\n<li>\u5728\u96c6\u5408n\u4e2d\u81f3\u591a\u8981\u4ece\u8be5\u8d77\u59cb\u4f4d\u7f6e : i &lt;= n &#8211; (k &#8211; path.size()) + 1\uff0c\u5f00\u59cb\u904d\u5386<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4ec0\u4e48\u6709\u4e2a+1\u5462\uff0c\u56e0\u4e3a\u5305\u62ec\u8d77\u59cb\u4f4d\u7f6e\uff0c\u6211\u4eec\u8981\u662f\u4e00\u4e2a\u5de6\u95ed\u7684\u96c6\u5408<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-41-1024x377.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"377\" data-original=\"https:\/\/womeifei.cn\/wp-content\/uploads\/2025\/11\/image-41-1024x377.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-2319\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\u6570\u7ec4 \u4e8c\u5206\u67e5\u627e \u529b\u6263\u9898\u76ee\u94fe\u63a5 \u53cc\u6307\u9488 \u5feb\u6162\u6307\u9488 \u79fb\u9664\u5143\u7d20 \u529b\u6263\u9898\u76ee\u94fe\u63a5 \u66b4\u529b\u89e3\u6cd5(\u6211\u7684\u60f3\u6cd5) : \u904d\u5386\u6570\u7ec4 \u5c06 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1705","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/pages\/1705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1705"}],"version-history":[{"count":79,"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/pages\/1705\/revisions"}],"predecessor-version":[{"id":2321,"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/pages\/1705\/revisions\/2321"}],"wp:attachment":[{"href":"https:\/\/womeifei.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}