{"@attributes":{"version":"2.0"},"channel":{"title":"giftia\u306eblog","link":"https:\/\/hch1212.github.io\/","description":"Recent content on giftia\u306eblog","generator":"Hugo","language":"zh-CN","lastBuildDate":"Mon, 04 May 2026 03:29:07 +0000","item":[{"title":"Bash","link":"https:\/\/hch1212.github.io\/posts\/2026\/04\/bash\/","pubDate":"Thu, 16 Apr 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/04\/bash\/","description":"<h1 id=\"bash-\u57fa\u7840\u6307\u5357\u4ece\u5165\u95e8\u5230\u5b9e\u7528\">Bash \u57fa\u7840\u6307\u5357\uff1a\u4ece\u5165\u95e8\u5230\u5b9e\u7528<\/h1>\n<p>Bash (Bourne Again SHell) \u662f\u5927\u591a\u6570 Linux \u548c macOS \u7cfb\u7edf\u7684\u9ed8\u8ba4\u547d\u4ee4\u884c\u89e3\u91ca\u5668\u3002\u5b83\u4e0d\u4ec5\u662f\u4e00\u4e2a\u4e0e\u7cfb\u7edf\u4ea4\u4e92\u7684\u754c\u9762\uff0c\u4e5f\u662f\u4e00\u95e8\u5f3a\u5927\u7684\u811a\u672c\u8bed\u8a00\u3002\u672c\u6587\u5c06\u5e26\u4f60\u5feb\u901f\u638c\u63e1 Bash \u7684\u6838\u5fc3\u6982\u5ff5\u548c\u5b9e\u7528\u6280\u5de7\u3002<\/p>\n<h2 id=\"1-\u4ec0\u4e48\u662f-bash\">1. \u4ec0\u4e48\u662f Bash\uff1f<\/h2>\n<p>\u7b80\u5355\u6765\u8bf4\uff0cBash \u5c31\u50cf\u4e00\u4e2a\u7ffb\u8bd1\u5b98\u3002\u4f60\u8f93\u5165\u4eba\u7c7b\u53ef\u8bfb\u7684\u547d\u4ee4\uff0cBash \u5c06\u5176\u7ffb\u8bd1\u6210\u64cd\u4f5c\u7cfb\u7edf\u80fd\u7406\u89e3\u7684\u6307\u4ee4\u5e76\u6267\u884c\u3002<\/p>\n<h2 id=\"2-\u57fa\u7840\u547d\u4ee4\">2. \u57fa\u7840\u547d\u4ee4<\/h2>\n<p>\u5728\u5f00\u59cb\u7f16\u5199\u811a\u672c\u4e4b\u524d\uff0c\u6211\u4eec\u9700\u8981\u719f\u6089\u4e00\u4e9b\u6700\u5e38\u7528\u7684\u57fa\u7840\u547d\u4ee4\uff1a<\/p>\n<ul>\n<li><code>pwd<\/code>: \u663e\u793a\u5f53\u524d\u6240\u5728\u76ee\u5f55\u7684\u8def\u5f84 (Print Working Directory)\u3002<\/li>\n<li><code>ls<\/code>: \u5217\u51fa\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u548c\u6587\u4ef6\u5939\u3002\n<ul>\n<li><code>ls -l<\/code>: \u8be6\u7ec6\u5217\u8868\u683c\u5f0f\u3002<\/li>\n<li><code>ls -a<\/code>: \u663e\u793a\u9690\u85cf\u6587\u4ef6\u3002<\/li>\n<\/ul>\n<\/li>\n<li><code>cd<\/code>: \u5207\u6362\u76ee\u5f55 (Change Directory)\u3002\n<ul>\n<li><code>cd \/var\/log<\/code>: \u8fdb\u5165\u7edd\u5bf9\u8def\u5f84\u3002<\/li>\n<li><code>cd ..<\/code>: \u8fd4\u56de\u4e0a\u4e00\u7ea7\u76ee\u5f55\u3002<\/li>\n<\/ul>\n<\/li>\n<li><code>mkdir<\/code>: \u521b\u5efa\u65b0\u76ee\u5f55\u3002<\/li>\n<li><code>rm<\/code>: \u5220\u9664\u6587\u4ef6\u6216\u76ee\u5f55\u3002\n<ul>\n<li><code>rm file.txt<\/code>: \u5220\u9664\u6587\u4ef6\u3002<\/li>\n<li><code>rm -r folder<\/code>: \u9012\u5f52\u5220\u9664\u76ee\u5f55\u53ca\u5176\u5185\u5bb9\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"3-\u53d8\u91cf\">3. \u53d8\u91cf<\/h2>\n<p>Bash \u4e2d\u7684\u53d8\u91cf\u4e0d\u9700\u8981\u58f0\u660e\u7c7b\u578b\uff0c\u76f4\u63a5\u8d4b\u503c\u5373\u53ef\u3002<\/p>\n<p><strong>\u5b9a\u4e49\u548c\u4f7f\u7528\u53d8\u91cf\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5b9a\u4e49\u53d8\u91cf\uff08\u6ce8\u610f\uff1a\u7b49\u53f7\u4e24\u8fb9\u4e0d\u80fd\u6709\u7a7a\u683c\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">name<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;World&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nv\">age<\/span><span class=\"o\">=<\/span><span class=\"m\">25<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4f7f\u7528\u53d8\u91cf\uff08\u5728\u53d8\u91cf\u540d\u524d\u52a0 $ \u7b26\u53f7\uff09<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;Hello, <\/span><span class=\"nv\">$name<\/span><span class=\"s2\">!&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;I am <\/span><span class=\"nv\">$age<\/span><span class=\"s2\"> years old.&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"4-\u6761\u4ef6\u5224\u65ad\">4. \u6761\u4ef6\u5224\u65ad<\/h2>\n<p>Bash \u4f7f\u7528 <code>if<\/code> \u8bed\u53e5\u8fdb\u884c\u6761\u4ef6\u63a7\u5236\u3002<\/p>"},{"title":"\u5e03\u9686\u8fc7\u6ee4\u5668","link":"https:\/\/hch1212.github.io\/posts\/2026\/03\/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8\/","pubDate":"Sun, 29 Mar 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/03\/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8\/","description":"<h2 id=\"\u5e03\u9686\u8fc7\u6ee4\u5668\u662f\u4ec0\u4e48\">\u5e03\u9686\u8fc7\u6ee4\u5668\u662f\u4ec0\u4e48<\/h2>\n<p>\u5728\u5904\u7406\u6d77\u91cf\u6570\u636e\u53bb\u91cd\u6216\u5224\u65ad\u201c\u662f\u5426\u5b58\u5728\u201d\u65f6\uff0c\u5982\u679c\u4f7f\u7528 Map \u6216 Set\uff0c\u5185\u5b58\u5f00\u9500\u4f1a\u968f\u6570\u636e\u91cf\u7ebf\u6027\u589e\u957f\u3002<\/p>\n<p>\u5e03\u9686\u8fc7\u6ee4\u5668\u662f\u4e00\u79cd\u6982\u7387\u578b\u6570\u636e\u7ed3\u6784\u3002\u5b83\u7684\u6838\u5fc3\u6743\u8861\u662f\uff1a\u7528\u6781\u5c0f\u7684\u5185\u5b58\u6d88\u8017\uff0c\u6362\u53d6\u4e00\u5b9a\u7684\u201c\u8bef\u5224\u7387\u201d\u3002<\/p>\n<p>\u5b83\u7684\u56de\u7b54\u53ea\u6709\u4e24\u79cd\u53ef\u80fd\uff1a<\/p>\n<ol>\n<li>\u7edd\u5bf9\u4e0d\u5728\u96c6\u5408\u4e2d\uff08100% \u51c6\u786e\uff09\u3002<\/li>\n<li>\u53ef\u80fd\u5728\u96c6\u5408\u4e2d\uff08\u5b58\u5728\u8bef\u5224\u6982\u7387\uff09\u3002<\/li>\n<\/ol>\n<h2 id=\"\u539f\u7406\u4e0e\u7ed3\u6784\">\u539f\u7406\u4e0e\u7ed3\u6784<\/h2>\n<p>\u5e03\u9686\u8fc7\u6ee4\u5668\u7684\u5e95\u5c42\u662f\u4e00\u4e2a\u4f4d\u6570\u7ec4\u548c\u4e00\u7ec4\u65e0\u504f\u54c8\u5e0c\u51fd\u6570\u3002<\/p>\n<p>\u5de5\u4f5c\u6d41\u7a0b\uff1a<\/p>\n<ol>\n<li>\u521d\u59cb\u5316\uff1a\u6240\u6709\u4f4d\uff08Bit\uff09\u7f6e\u4e3a 0\u3002<\/li>\n<li>\u6dfb\u52a0\u5143\u7d20\uff1a\n<ul>\n<li>\u5c06\u5143\u7d20\u901a\u8fc7 k \u4e2a\u54c8\u5e0c\u51fd\u6570\u8ba1\u7b97\uff0c\u5f97\u5230 k \u4e2a\u4f4d\u7f6e\u3002<\/li>\n<li>\u5c06\u4f4d\u6570\u7ec4\u4e2d\u5bf9\u5e94\u7684\u8fd9\u4e9b\u4f4d\u7f6e\u5168\u90e8\u7f6e\u4e3a 1\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u67e5\u8be2\u5143\u7d20\uff1a\n<ul>\n<li>\u5c06\u5f85\u67e5\u8be2\u5143\u7d20\u901a\u8fc7\u540c\u6837\u7684 k \u4e2a\u54c8\u5e0c\u51fd\u6570\u8ba1\u7b97\u3002<\/li>\n<li>\u5982\u679c\u6240\u6709\u4f4d\u7f6e\u90fd\u662f 1\uff1a\u8ba4\u4e3a\u5143\u7d20\u201c\u53ef\u80fd\u5b58\u5728\u201d\u3002<\/li>\n<li>\u5982\u679c\u4efb\u4e00\u4f4d\u7f6e\u662f 0\uff1a\u8ba4\u4e3a\u5143\u7d20\u201c\u7edd\u5bf9\u4e0d\u5b58\u5728\u201d\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"\u5e94\u7528\u573a\u666f\">\u5e94\u7528\u573a\u666f<\/h2>\n<ol>\n<li>\u9632\u6b62\u7f13\u5b58\u7a7f\u900f\uff1a\n\u5728\u8bbf\u95ee\u6570\u636e\u5e93\u524d\uff0c\u5148\u901a\u8fc7\u5e03\u9686\u8fc7\u6ee4\u5668\u5224\u65ad Key \u662f\u5426\u5b58\u5728\u3002\n\u5982\u679c\u4e0d\u5b58\u5728\u76f4\u63a5\u8fd4\u56de\uff0c\u907f\u514d\u65e0\u6548\u8bf7\u6c42\u51fb\u7a7f\u7f13\u5b58\u76f4\u8fbe\u6570\u636e\u5e93\u3002<\/li>\n<li>\u722c\u866b URL \u53bb\u91cd\uff1a\n\u5b58\u5165\u6570\u4ebf\u7ea7 URL\uff0c\u5feb\u901f\u5224\u65ad\u67d0\u4e2a\u7f51\u9875\u662f\u5426\u5df2\u7ecf\u722c\u53d6\u8fc7\uff0c\u8282\u7701\u5185\u5b58\u3002<\/li>\n<li>\u5783\u573e\u90ae\u4ef6\u8fc7\u6ee4\uff1a\n\u4ece\u6570\u5341\u4ebf\u4e2a\u5783\u573e\u90ae\u4ef6\u5730\u5740\u4e2d\u5feb\u901f\u5339\u914d\u3002<\/li>\n<li>\u9ed1\u540d\u5355\u7cfb\u7edf\uff1a\n\u5982\u6076\u610f IP \u8fc7\u6ee4\u3001\u654f\u611f\u8bcd\u68c0\u67e5\u3002<\/li>\n<\/ol>\n<h2 id=\"\u8fdb\u9636\u7248\u5e03\u9686\u8fc7\u6ee4\u5668\u7684\u53d8\u4f53\">\u8fdb\u9636\u7248\uff1a\u5e03\u9686\u8fc7\u6ee4\u5668\u7684\u53d8\u4f53<\/h2>\n<ol>\n<li>\n<p>Counting Bloom Filter (\u53ef\u8ba1\u6570\u5e03\u9686\u8fc7\u6ee4\u5668)<\/p>\n<ul>\n<li>\u89e3\u51b3\u95ee\u9898\uff1a\u4e0d\u652f\u6301\u5220\u9664\u3002<\/li>\n<li>\u539f\u7406\uff1a\u5c06\u4f4d\u6570\u7ec4\u7684\u6bcf\u4e2a Bit \u6362\u6210\u4e00\u4e2a Counter (\u8ba1\u6570\u5668)\u3002<\/li>\n<li>\u64cd\u4f5c\uff1a\u6dfb\u52a0\u65f6 +1\uff0c\u5220\u9664\u65f6 -1\u3002\u867d\u7136\u589e\u52a0\u4e86\u7a7a\u95f4\u5360\u7528\uff0c\u4f46\u652f\u6301\u4e86\u52a8\u6001\u5220\u9664\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Cuckoo Filter (\u5e03\u8c37\u9e1f\u8fc7\u6ee4\u5668)<\/p>\n<ul>\n<li>\u4f18\u52bf\uff1a\u652f\u6301\u52a8\u6001\u5220\u9664\uff0c\u4e14\u5728\u8bef\u5224\u7387\u8f83\u4f4e\u65f6\uff0c\u67e5\u8be2\u6027\u80fd\u4f18\u4e8e\u5e03\u9686\u8fc7\u6ee4\u5668\uff0c\u7a7a\u95f4\u5229\u7528\u7387\u66f4\u9ad8\u3002<\/li>\n<li>\u539f\u7406\uff1a\u57fa\u4e8e\u5e03\u8c37\u9e1f\u54c8\u5e0c\u7b97\u6cd5\uff0c\u901a\u8fc7\u6307\u7eb9\uff08Fingerprint\uff09\u5b58\u50a8\u5143\u7d20\u7279\u5f81\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>"},{"title":"K8s Workload","link":"https:\/\/hch1212.github.io\/posts\/2026\/03\/k8s-workload\/","pubDate":"Tue, 24 Mar 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/03\/k8s-workload\/","description":"<h2 id=\"workload-\u662f\u4ec0\u4e48\">Workload \u662f\u4ec0\u4e48<\/h2>\n<p>\u5728 Kubernetes \u91cc\uff0c<code>Workload<\/code> \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u5e94\u7528\u8fd0\u884c\u65b9\u5f0f\u7684\u58f0\u660e\u201d\u3002<\/p>\n<p>\u6211\u4eec\u5e76\u4e0d\u76f4\u63a5\u64cd\u4f5c Pod\uff0c\u800c\u662f\u901a\u8fc7 Workload \u5bf9\u8c61\u544a\u8bc9\u96c6\u7fa4\uff1a<\/p>\n<ul>\n<li>\u9700\u8981\u8fd0\u884c\u4ec0\u4e48\u7a0b\u5e8f<\/li>\n<li>\u9700\u8981\u591a\u5c11\u526f\u672c<\/li>\n<li>\u5931\u8d25\u540e\u5982\u4f55\u6062\u590d<\/li>\n<li>\u4ee5\u4ec0\u4e48\u65b9\u5f0f\u53d1\u5e03\u65b0\u7248\u672c<\/li>\n<\/ul>\n<p>Kubernetes \u63a7\u5236\u5668\u4f1a\u6301\u7eed\u628a\u201c\u5b9e\u9645\u72b6\u6001\u201d\u62c9\u56de\u5230\u201c\u671f\u671b\u72b6\u6001\u201d\u3002\u8fd9\u4e5f\u662f\u5b83\u548c\u4f20\u7edf\u624b\u5de5\u8fd0\u7ef4\u6700\u5927\u7684\u533a\u522b\u3002<\/p>\n<h2 id=\"\u4e3a\u4ec0\u4e48\u4e0d\u76f4\u63a5\u7ba1\u7406-pod\">\u4e3a\u4ec0\u4e48\u4e0d\u76f4\u63a5\u7ba1\u7406 Pod<\/h2>\n<p>Pod \u662f\u6700\u5c0f\u8c03\u5ea6\u5355\u4f4d\uff0c\u4f46\u5b83\u662f\u6613\u5931\u7684\uff1a<\/p>\n<ul>\n<li>\u8282\u70b9\u91cd\u542f\uff0cPod \u53ef\u80fd\u88ab\u91cd\u65b0\u8c03\u5ea6<\/li>\n<li>Pod \u5f02\u5e38\u9000\u51fa\uff0c\u9700\u8981\u91cd\u65b0\u62c9\u8d77<\/li>\n<li>\u7248\u672c\u53d1\u5e03\u9700\u8981\u6709\u5e8f\u66ff\u6362<\/li>\n<\/ul>\n<p>\u5982\u679c\u76f4\u63a5\u7528\u88f8 Pod\uff0c\u6240\u6709\u751f\u547d\u5468\u671f\u7ba1\u7406\u90fd\u8981\u81ea\u5df1\u5904\u7406\u3002Workload \u7684\u4ef7\u503c\uff0c\u5c31\u662f\u628a\u8fd9\u4e9b\u91cd\u590d\u5de5\u4f5c\u4ea4\u7ed9\u63a7\u5236\u5668\u3002<\/p>\n<h2 id=\"kubernetes-\u5e38\u89c1-workload\">Kubernetes \u5e38\u89c1 Workload<\/h2>\n<h3 id=\"1-deployment\">1. Deployment<\/h3>\n<p>\u6700\u5e38\u89c1\u7684\u65e0\u72b6\u6001\u5e94\u7528\u63a7\u5236\u5668\uff0c\u9002\u5408 Web \u670d\u52a1\u3001API \u670d\u52a1\u3001\u7f51\u5173\u7b49\u3002<\/p>\n<p>\u6838\u5fc3\u80fd\u529b\uff1a<\/p>\n<ul>\n<li>\u526f\u672c\u7ba1\u7406\uff08Replica\uff09<\/li>\n<li>\u6eda\u52a8\u66f4\u65b0\uff08RollingUpdate\uff09<\/li>\n<li>\u56de\u6eda\uff08Rollback\uff09<\/li>\n<li>\u58f0\u660e\u5f0f\u6269\u7f29\u5bb9<\/li>\n<\/ul>\n<h3 id=\"2-statefulset\">2. StatefulSet<\/h3>\n<p>\u9762\u5411\u6709\u72b6\u6001\u5e94\u7528\uff0c\u9002\u5408\u6570\u636e\u5e93\u3001\u6d88\u606f\u961f\u5217\u3001\u5206\u5e03\u5f0f\u5b58\u50a8\u3002<\/p>\n<p>\u6838\u5fc3\u7279\u5f81\uff1a<\/p>\n<ul>\n<li>\u7a33\u5b9a\u7f51\u7edc\u6807\u8bc6\uff08\u56fa\u5b9a Pod \u540d\uff09<\/li>\n<li>\u7a33\u5b9a\u5b58\u50a8\u7ed1\u5b9a\uff08\u5e38\u914d PVC\uff09<\/li>\n<li>\u6709\u5e8f\u521b\u5efa\u4e0e\u6709\u5e8f\u5220\u9664<\/li>\n<\/ul>\n<p>\u5982\u679c\u4f60\u7684\u5e94\u7528\u5f3a\u4f9d\u8d56\u5b9e\u4f8b\u8eab\u4efd\uff08\u5982\u4e3b\u4ece\u7f16\u53f7\u3001\u5206\u7247\u7f16\u53f7\uff09\uff0c\u4f18\u5148\u8003\u8651 StatefulSet\u3002<\/p>\n<h3 id=\"3-daemonset\">3. DaemonSet<\/h3>\n<p>\u4fdd\u8bc1\u6bcf\u4e2a\u8282\u70b9\uff08\u6216\u6307\u5b9a\u8282\u70b9\uff09\u90fd\u8fd0\u884c\u4e00\u4e2a Pod\u3002<\/p>\n<p>\u5178\u578b\u573a\u666f\uff1a<\/p>\n<ul>\n<li>\u65e5\u5fd7\u91c7\u96c6 Agent<\/li>\n<li>\u8282\u70b9\u76d1\u63a7 Agent<\/li>\n<li>CNI \/ CSI \u76f8\u5173\u7ec4\u4ef6<\/li>\n<\/ul>\n<p>\u5b83\u66f4\u50cf\u201c\u8282\u70b9\u7ea7\u670d\u52a1\u201d\uff0c\u800c\u4e0d\u662f\u4e1a\u52a1\u670d\u52a1\u3002<\/p>\n<h3 id=\"4-job\">4. Job<\/h3>\n<p>\u4e00\u6b21\u6027\u4efb\u52a1\uff0c\u8fd0\u884c\u5b8c\u6210\u5373\u7ed3\u675f\u3002<\/p>"},{"title":"Leetcode","link":"https:\/\/hch1212.github.io\/posts\/2026\/03\/leetcode\/","pubDate":"Mon, 09 Mar 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/03\/leetcode\/","description":"<h3 id=\"1\">1<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/two-sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/two-sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">one<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">twoSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">m<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5143\u7d20\uff1a\u4e0b\u6807<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">other<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">index<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">other<\/span><span class=\"p\">];<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">index<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"2\">2<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/add-two-numbers\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/add-two-numbers\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">addTwoNumbers<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">dummy<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">dummy<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">carry<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8fdb\u4f4d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">v1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v2<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">v1<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">v2<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">v1<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">v2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">carry<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">%<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">carry<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">v1<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">v2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">carry<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">newNode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">{<\/span><span class=\"nx\">Val<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">sum<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">carry<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">newNode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">{<\/span><span class=\"nx\">Val<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">carry<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">dummy<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"3\">3<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/longest-substring-without-repeating-characters\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/longest-substring-without-repeating-characters\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">three<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">lengthOfLongestSubstring<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">byte<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"11\">11<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/container-with-most-water\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/container-with-most-water\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">oneone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxArea<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">area<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nb\">min<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">area<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"15\">15<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/3sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/3sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;sort&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">threeSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sort<\/span><span class=\"p\">.<\/span><span class=\"nf\">Ints<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u4e24\u6570\u4e4b\u548c\uff08\u6709\u5e8f\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">v1<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">v1<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"nx\">v1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"c1\">\/\/ \u8fd9\u91cc\u9700\u8981\u5185\u90e8\u53bb\u91cd<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"19\">19<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/remove-nth-node-from-end-of-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/remove-nth-node-from-end-of-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onenine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">removeNthFromEnd<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5feb\u6162\u6307\u9488\uff0c\u5feb\u6307\u9488\u5148\u8d70n\u6b65<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fast<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">n<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u662f\u5426\u8981\u5220\u9664\u5934\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u518d\u540c\u65f6\u8d70<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ slow\u7684\u4e0b\u4e00\u4e2a\u8282\u70b9\u5c31\u662f\u8981\u5220\u9664\u7684\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"20\">20<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/valid-parentheses\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/valid-parentheses\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twozero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isValid<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"o\">%<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">m<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">rune<\/span><span class=\"p\">]<\/span><span class=\"kt\">rune<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"sc\">&#39;)&#39;<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;(&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"sc\">&#39;]&#39;<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;[&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"sc\">&#39;}&#39;<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;{&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">rune<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">other<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">];<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">stack<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">other<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">stack<\/span><span class=\"p\">[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">stack<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"21\">21<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/merge-two-sorted-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/merge-two-sorted-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twoone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">list1<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">list1<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">list1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">list1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">list1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">list1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">list1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">list2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">list1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">list2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"23\">23<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/merge-k-sorted-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/merge-k-sorted-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \/\/ \u9012\u5f52\u5408\u5e76<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func mergeKLists(lists []*ListNode) *ListNode {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tif len(lists) == 0 {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\treturn nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \treturn mergeTwoLists(lists[0], mergeKLists(lists[1:]))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4e24\u4e24\u8fed\u4ee3\u5408\u5e76<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeKLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">lists<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">lists<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">lists<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">lists<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">lists<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">lists<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">lists<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">lists<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">lists<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5408\u5e76\u4e24\u4e2a\u6709\u5e8f\u94fe\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">mergeTwoLists<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"24\">24<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/swap-nodes-in-pairs\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/swap-nodes-in-pairs\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twofour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">swapPairs<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newHead<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">swapPairs<\/span><span class=\"p\">(<\/span><span class=\"nx\">newHead<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newHead<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"25\">25<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/reverse-nodes-in-k-group\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/reverse-nodes-in-k-group\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twofive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverseKGroup<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u7ec8\u6b62\u6761\u4ef6\uff1a\u4e0d\u8db3 k \u4e2a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6b64\u65f6 cur \u5df2\u7ecf\u6307\u5411\u4e86\u7b2c k+1 \u4e2a\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53cd\u8f6c\u524d k \u4e2a\u8282\u70b9\uff1a[head, cur)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newHead<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53cd\u8f6c\u540e head \u5df2\u7ecf\u53d8\u6210\u4e86\u5c3e\u8282\u70b9\uff0c\u8fde\u63a5\u540e\u7eed\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverseKGroup<\/span><span class=\"p\">(<\/span><span class=\"nx\">cur<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e0d\u80fd\u8d85\u51fa\u533a\u95f4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newHead<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"31\">31<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/next-permutation\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/next-permutation\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threeone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">nextPermutation<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4ece\u540e\u904d\u5386\u6bd4\u5927\u5c0f\uff08\u56de\u6eaf\u601d\u8def\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u7ffb\u8f6c\u5019\u9009\u96c6\u5408<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"33\">33<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/search-in-rotated-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/search-in-rotated-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threethree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">search<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxIndex<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">maxIndex<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">twoSearch<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxIndex<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">twoSearch<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxIndex<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u533a\u95f4\u4e8c\u5206<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">twoSearch<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"34\">34<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/find-first-and-last-position-of-element-in-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/find-first-and-last-position-of-element-in-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">searchRange<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6b64\u65f6 left \u662f\u7b2c\u4e00\u4e2a target \u4e0b\u6807<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"35\">35<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/search-insert-position\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/search-insert-position\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threefive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">searchInsert<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"41\">41<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/first-missing-positive\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/first-missing-positive\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fourone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">firstMissingPositive<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6b63\u6574\u6570\uff1a1...n<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8ba9\u6570\u5b57\u653e\u5728\u6b63\u786e\u7684\u4f4d\u7f6e\u4e0a\uff1anums[i] == i+1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5df2\u7ecf\u5728\u6b63\u786e\u4f4d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e0d\u5728\u8303\u56f4\u5185<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u91cd\u590d\u7684\u6570\u5b57<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4ea4\u6362\u540e\u8fd8\u8981\u7ee7\u7eed\u68c0\u67e5\u5f53\u524d\u7d22\u5f15<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"42\">42<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/trapping-rain-water\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/trapping-rain-water\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fourtwo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">trap<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">height<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u53cc\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxR<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e24\u4e2a\u8fb9\u754c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxL<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxR<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxL<\/span><span class=\"o\">-<\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxL<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">maxL<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">maxL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxR<\/span><span class=\"o\">-<\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">sum<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxR<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">maxR<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">maxR<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">height<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">sum<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"45\">45<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/jump-game-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/jump-game-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fourfive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">jump<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53cd\u5411<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">position<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">step<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">position<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">position<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">position<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">position<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">step<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">step<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"46\">46<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/permutations\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/permutations\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">foursix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">permute<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7ed3\u679c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8def\u5f84<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">used<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">bool<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ nums \u4e2d\u4f7f\u7528\u8fc7\u7684<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">used<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">used<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">bool<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">copyTemp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nb\">copy<\/span><span class=\"p\">(<\/span><span class=\"nx\">copyTemp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">copyTemp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">used<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">used<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">used<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">used<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"48\">48<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/rotate-image\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/rotate-image\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">foureight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">rotate<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ 1. \u4e0a\u4e0b\u7ffb\u8f6c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">row<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">row<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ 2. \u4e3b\u5bf9\u89d2\u7ebf\u7ffb\u8f6c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">][<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">][<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"49\">49<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/group-anagrams\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/group-anagrams\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fournine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">groupAnagrams<\/span><span class=\"p\">(<\/span><span class=\"nx\">strs<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">][]<\/span><span class=\"kt\">string<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">string<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">strs<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nf\">getCount<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"p\">)]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nf\">getCount<\/span><span class=\"p\">(<\/span><span class=\"nx\">v<\/span><span class=\"p\">)],<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">getCount<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"53\">53<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/maximum-subarray\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/maximum-subarray\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivethree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxSubArray<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53ef\u4ee5dp\uff0c\u4f46\u8fd9\u91cc\u53ea\u7528\u5230\u4e00\u4e2a\u72b6\u6001\uff0c\u6240\u4ee5\u76f4\u63a5\u7528\u4e00\u4e2a\u53d8\u91cf\u8bb0\u5f55\u5f53\u524d\u72b6\u6001\u5c31\u884c\u4e86<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">curSum<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4ee5\u5f53\u524d\u5143\u7d20\u7ed3\u5c3e\u7684\u6700\u5927\u5b50\u6570\u7ec4\u548c\uff0c\u521d\u59cb\u503c\u4e3anums[0]\uff0c\u56e0\u4e3a\u5982\u679cnums\u5168\u662f\u8d1f\u6570\uff0c\u90a3\u4e48\u7ed3\u679c\u5c31\u662f\u6700\u5927\u7684\u90a3\u4e2a\u8d1f\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">curSum<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">curSum<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u76f4\u63a5\u820d\u5f03\u4e4b\u524d\u7684<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">curSum<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">curSum<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">curSum<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"54\">54<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/spiral-matrix\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/spiral-matrix\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">spiralOrder<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"o\">*<\/span><span class=\"nx\">col<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u56db\u4e2a\u8fb9\u754c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">top<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u4e0a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">top<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">top<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u53f3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">][<\/span><span class=\"nx\">right<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u4e0b<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">bottom<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">bottom<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u5de6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">bottom<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">top<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">][<\/span><span class=\"nx\">left<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"55\">55<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/jump-game\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/jump-game\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivefive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">canJump<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxPosition<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxPosition<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">maxPosition<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">maxPosition<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"nx\">v<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxPosition<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6ce8\u610f\u662f\u4e0b\u6807\u7684\u6bd4\u8f83<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"56\">56<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/merge-intervals\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/merge-intervals\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivesix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;slices&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">intervals<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6309\u5de6\u7aef\u70b9\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slices<\/span><span class=\"p\">.<\/span><span class=\"nf\">SortFunc<\/span><span class=\"p\">(<\/span><span class=\"nx\">intervals<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">p<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">intervals<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u91cd\u53e0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">intervals<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">})<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u52a0\u4e0a\u6700\u540e\u4e00\u4e2a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"70\">70<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/climbing-stairs\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/climbing-stairs\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">sevenzero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">climbStairs<\/span><span class=\"p\">(<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">one<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">one<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">one<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">two<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"73\">73<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/set-matrix-zeroes\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/set-matrix-zeroes\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">seventhree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u7a7a\u95f4O(1)\u7248<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">setZeroes<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4f7f\u7528\u77e9\u9635\u7684\u7b2c\u4e00\u884c\u548c\u7b2c\u4e00\u5217\u6765\u6807\u8bb0\uff0c[0][0]\u907f\u514d\u590d\u7528\uff0c\u6240\u4ee5\u52a0\u4e00\u4e2a\u53d8\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">firstCol<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7b2c\u4e00\u5217\u7b2c\u4e00\u4e2a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"c1\">\/\/ \u6e05\u6670\u533a\u5206\u7b2c\u4e00\u884c\u548c\u7b2c\u4e00\u5217<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">firstCol<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6700\u540e\u5904\u7406\u7b2c\u4e00\u884c\u548c\u7b2c\u4e00\u5217<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">firstCol<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func setZeroes(matrix [][]int) {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \trow := len(matrix)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tcol := len(matrix[0])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \trowFlag := make([]int, row)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tcolFlag := make([]int, col)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\/\/ \u5148\u6807\u8bb0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tfor i := 0; i &lt; row; i++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\tfor j := 0; j &lt; col; j++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\tif matrix[i][j] == 0 {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\t\trowFlag[i] = 1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\t\tcolFlag[j] = 1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\/\/ \u518d\u6539\u53d8<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tfor i := 0; i &lt; row; i++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\tfor j := 0; j &lt; col; j++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\tif rowFlag[i] == 1 || colFlag[j] == 1 {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\t\tmatrix[i][j] = 0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"74\">74<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/search-a-2d-matrix\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/search-a-2d-matrix\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">sevenfour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">searchMatrix<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"75\">75<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/sort-colors\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/sort-colors\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">sevenfive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortColors<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4e09\u8def\u5feb\u6392\u601d\u8def<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp2<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp2<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">switch<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">case<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">case<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp1<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">case<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp2<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp2<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp2<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"76\">76<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/minimum-window-substring\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/minimum-window-substring\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">sevensix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">minWindow<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">t<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">t<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ A-Z 65-90 \/ a-z 97-122 \/ 122-65+1=58<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempT<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">58<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{},<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">58<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ t\u6709\u51e0\u79cd\u5b57\u7b26<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">t<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempT<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempT<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u904d\u5386tempT\u800c\u4e0d\u662ft, \u907f\u514d\u91cd\u590d\u5b57\u7b26<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">target<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">now<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ s\u7a97\u53e3\u73b0\u5728\u6709\u51e0\u79cd\u5b57\u7b26\u8fbe\u5230\u6761\u4ef6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempT<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">now<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">now<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempT<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;A&#39;<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">now<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"78\">78<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/subsets\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/subsets\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">seveneight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">subsets<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4ece\u7d22\u5f15 0 \u5f00\u59cb\u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">start<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">copyTemp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nb\">copy<\/span><span class=\"p\">(<\/span><span class=\"nx\">copyTemp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">copyTemp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">start<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"94\">94<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-inorder-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/binary-tree-inorder-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">ninefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">inorderTraversal<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">inorder<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">inorder<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">inorder<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">inorder<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"98\">98<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/validate-binary-search-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/validate-binary-search-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">nineeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;math&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u9012\u5f52\u6216\u8005\u4e2d\u5e8f\uff0c\u8fd9\u91cc\u7528\u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isValidBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nf\">isBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">math<\/span><span class=\"p\">.<\/span><span class=\"nx\">MinInt<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">math<\/span><span class=\"p\">.<\/span><span class=\"nx\">MaxInt<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u9700\u8981\u5927\u5c0f\u8fb9\u754c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">minV<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxV<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">minV<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxV<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">isBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">minV<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">isBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxV<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"101\">101<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/symmetric-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/symmetric-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onezeroone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isSymmetric<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nf\">isMirror<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4e24\u4e2a\u6811\u662f\u5426\u5bf9\u79f0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isMirror<\/span><span class=\"p\">(<\/span><span class=\"nx\">node1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node1<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node1<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">node1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">(<\/span><span class=\"nf\">isMirror<\/span><span class=\"p\">(<\/span><span class=\"nx\">node1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">(<\/span><span class=\"nf\">isMirror<\/span><span class=\"p\">(<\/span><span class=\"nx\">node1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"102\">102<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-level-order-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/binary-tree-level-order-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onezerotwo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">levelOrder<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">temp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"p\">:]<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e00\u6b21\u6027\u53bb\u6389\u8ba1\u7b97\u8fc7\u7684\u4e00\u5c42<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"104\">104<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/maximum-depth-of-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/maximum-depth-of-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onezerofour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxDepth<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nf\">maxDepth<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">),<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxDepth<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"105\">105<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/construct-binary-tree-from-preorder-and-inorder-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/construct-binary-tree-from-preorder-and-inorder-traversal\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onezerofive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">buildTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">preorder<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">inorder<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">preorder<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">{<\/span><span class=\"nx\">Val<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">preorder<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u627e\u5de6\u5b50\u6811\u7684\u8282\u70b9\u4e2a\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">inorder<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">inorder<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">preorder<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">n<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">buildTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">preorder<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">:<\/span><span class=\"nx\">n<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">inorder<\/span><span class=\"p\">[:<\/span><span class=\"nx\">n<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">buildTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">preorder<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">:],<\/span><span class=\"w\"> <\/span><span class=\"nx\">inorder<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">:])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"108\">108<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/convert-sorted-array-to-binary-search-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/convert-sorted-array-to-binary-search-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onezeroeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortedArrayToBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53d6\u4e2d\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">{<\/span><span class=\"nx\">Val<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortedArrayToBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[:<\/span><span class=\"nx\">mid<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortedArrayToBST<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">:])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"114\">114<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/flatten-binary-tree-to-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/flatten-binary-tree-to-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">oneonefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">flatten<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">flatten<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">flatten<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempRight<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u79fb\u52a8\u5230\u6700\u540e\u4e00\u4e2a\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempLeft<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempLeft<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempLeft<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempLeft<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempLeft<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempRight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"118\">118<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/pascals-triangle\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/pascals-triangle\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">oneoneeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">generate<\/span><span class=\"p\">(<\/span><span class=\"nx\">numRows<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">numRows<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{{<\/span><span class=\"mi\">1<\/span><span class=\"p\">}}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">numRows<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{{<\/span><span class=\"mi\">1<\/span><span class=\"p\">},<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">}}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{{<\/span><span class=\"mi\">1<\/span><span class=\"p\">},<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">}}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">numRows<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"121\">121<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/best-time-to-buy-and-sell-stock\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/best-time-to-buy-and-sell-stock\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onetwoone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxProfit<\/span><span class=\"p\">(<\/span><span class=\"nx\">prices<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">minPrice<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">prices<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">prices<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">prices<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"nx\">minPrice<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">minPrice<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">min<\/span><span class=\"p\">(<\/span><span class=\"nx\">minPrice<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">prices<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"124\">124<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-maximum-path-sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/binary-tree-maximum-path-sum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onetwofour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;math&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxPathSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">math<\/span><span class=\"p\">.<\/span><span class=\"nx\">MinInt<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4ee5\u5f53\u524d\u8282\u70b9\u4e3a\u6839\u7684\u6700\u5927\u8def\u5f84\u548c\u4ee5\u53ca\u8282\u70b9\u8d21\u732e\u503c\uff08\u8d21\u732e\u503c\u7528\u4e8e\u9012\u5f52\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxL<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxR<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"o\">+<\/span><span class=\"nx\">maxL<\/span><span class=\"o\">+<\/span><span class=\"nx\">maxR<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">maxL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxR<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u907f\u514d\u4e00\u4e2a\u8282\u70b9\u91cd\u590d\u4f7f\u7528<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"128\">128<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/longest-consecutive-sequence\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/longest-consecutive-sequence\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onetwoeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">longestConsecutive<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"kt\">bool<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5168\u90e8\u52a0\u5230map<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u904d\u5386map\uff0c\u53ef\u53bb\u91cd<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">k<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e0d\u662f\u5f00\u5934\u907f\u514d\u8ba1\u7b97<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">curL<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">curN<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">curN<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">curL<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">curN<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">curL<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"136\">136<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/single-number\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/single-number\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onethreesix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5f02\u6216<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">singleNumber<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">^=<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"138\">138<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/copy-list-with-random-pointer\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/copy-list-with-random-pointer\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onethreeeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Random<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">copyRandomList<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u590d\u5236\u8282\u70b9\u5e76\u63d2\u5165\u5230\u539f\u8282\u70b9\u540e\u9762<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">newNode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{<\/span><span class=\"nx\">Val<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">newNode<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8bbe\u7f6e\u968f\u673a\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Random<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Random<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Random<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Random<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5206\u79bb\u4e24\u4e2a\u94fe\u8868\uff08\u6ce8\u610f\u8981\u8fd8\u539f\u65e7\u94fe\u8868\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newHead<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newCur<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">newCur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newCur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">newCur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">newCur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">newCur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newCur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"141\">141<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/linked-list-cycle\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/linked-list-cycle\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefourone<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">hasCycle<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5feb\u6162\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"142\">142<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/linked-list-cycle-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/linked-list-cycle-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefourtwo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">detectCycle<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5feb\u6162\u6307\u9488\u627e\u5230\u76f8\u9047\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9519\u5f00<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u73af\u7684\u5468\u957f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">c<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">c<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u91cd\u7f6e\u4e24\u4e2a\u6307\u9488\uff0c\u8ba9\u5feb\u6307\u9488\u4ece\u5934\u5148\u8d70\u4e00\u5708\u5706\u7684\u957f\u5ea6\uff0c\u7136\u540e\u518d\u4e24\u4e2a\u6307\u9488\u518d\u4e00\u8d77\u8d70\uff0c\u6700\u7ec8\u4ed6\u4eec\u4f1a\u5728\u5706\u7684\u8d77\u70b9\u76f8\u9047<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"146\">146<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/lru-cache\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/lru-cache\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefoursix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">LRUCache<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">len<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">capacity<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cache<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u53cc\u5411\u94fe\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">prev<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">Constructor<\/span><span class=\"p\">(<\/span><span class=\"nx\">capacity<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nx\">LRUCache<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{},<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tail<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">LRUCache<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">len<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">capacity<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">capacity<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cache<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">head<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tail<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">LRUCache<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">cache<\/span><span class=\"p\">[<\/span><span class=\"nx\">key<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"p\">!<\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">deleteNode<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">addHead<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">LRUCache<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Put<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">cache<\/span><span class=\"p\">[<\/span><span class=\"nx\">key<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">deleteNode<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">addHead<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newNode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">key<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">value<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">len<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">capacity<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">addHead<\/span><span class=\"p\">(<\/span><span class=\"nx\">newNode<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">cache<\/span><span class=\"p\">[<\/span><span class=\"nx\">key<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">len<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nb\">delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">cache<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"p\">.<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">deleteNode<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">addHead<\/span><span class=\"p\">(<\/span><span class=\"nx\">newNode<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">cache<\/span><span class=\"p\">[<\/span><span class=\"nx\">key<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">LRUCache<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">addHead<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">LRUCache<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">deleteNode<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">next<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">prev<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"148\">148<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/sort-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/sort-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefoureight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortList<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5f52\u5e76\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u627e\u5230\u94fe\u8868\u7684\u4e2d\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5206\u5272\u94fe\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nf\">sortList<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"p\">),<\/span><span class=\"w\"> <\/span><span class=\"nf\">sortList<\/span><span class=\"p\">(<\/span><span class=\"nx\">mid<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5408\u5e76\u4e24\u4e2a\u6709\u5e8f\u94fe\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">l1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">l2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"153\">153<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/find-minimum-in-rotated-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/find-minimum-in-rotated-sorted-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefivethree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">findMin<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"155\">155<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/min-stack\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/min-stack\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onefivefive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinStack<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">minStack<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">Constructor<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinStack<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinStack<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">stack<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{},<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{},<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinStack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">val<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">val<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">min<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">val<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinStack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">[:<\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">[:<\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinStack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Top<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">stack<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinStack<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetMin<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">minStack<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"160\">160<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/intersection-of-two-linked-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/intersection-of-two-linked-lists\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onesixzero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">getIntersectionNode<\/span><span class=\"p\">(<\/span><span class=\"nx\">headA<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">headB<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">headA<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">headB<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53cc\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempA<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempB<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">headA<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">headB<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u76f8\u5f53\u4e8e\u5728\u94fe\u8868A\u7684\u672b\u5c3e\u63a5\u4e0a\u94fe\u8868B\uff0c\u5728\u94fe\u8868B\u7684\u672b\u5c3e\u63a5\u4e0a\u94fe\u8868A<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempA<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempB<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempA<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">tempA<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">headB<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">tempA<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempA<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempB<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">tempB<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">headA<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">tempB<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempB<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempA<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"169\">169<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/majority-element\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/majority-element\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onesixnine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">majorityElement<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">hp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">hp<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">hp<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ hp\u4e3a0\u65f6\u521d\u59cb\u5316<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u540c\u6570\u52a0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">hp<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5f02\u6570\u51cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">hp<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"189\">189<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/rotate-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/rotate-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">oneeightnine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">rotate<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"o\">%<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[:<\/span><span class=\"nx\">k<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">k<\/span><span class=\"p\">:])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u53cd\u8f6c\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"198\">198<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/house-robber\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/house-robber\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">onenineeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">rob<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">one<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">one<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">one<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">two<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">two<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"o\">+<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">two<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"199\">199<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/binary-tree-right-side-view\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/binary-tree-right-side-view\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">oneninenine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ bfs \u627e\u6bcf\u4e00\u5c42\u7684\u6700\u540e\u4e00\u4e2a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">rightSideView<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"p\">:]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"200\">200<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/number-of-islands\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/number-of-islands\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twozerozero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">numIslands<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">byte<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;1&#39;<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">byte<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;0&#39;<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;0&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5fc5\u987b\u4e0a\u4e0b\u5de6\u53f3\u624d\u80fd\u8986\u76d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"206\">206<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/reverse-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/reverse-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twozerosix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func reverseList(head *ListNode) *ListNode {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\/\/ \u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tif head == nil || head.Next == nil {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\treturn head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tnewHead := reverseList(head.Next)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \thead.Next.Next = head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \thead.Next = nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \treturn newHead<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverseList<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8fed\u4ee3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">pre<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">next<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">pre<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">pre<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cur<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">cur<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">pre<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"207\">207<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/course-schedule\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/course-schedule\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twozeroseven<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">canFinish<\/span><span class=\"p\">(<\/span><span class=\"nx\">numCourses<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">prerequisites<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">mapCourses<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u4fee\u8bfe --&gt; \u5176\u4ed6\u8bfe<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">input<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6bcf\u4e2a\u8282\u70b9\u7684\u5165\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u6bcf\u4e2a\u8282\u70b9\u5165\u5ea6\u4e3a0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">numCourses<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">input<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">mapCourses<\/span><span class=\"p\">[<\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">mapCourses<\/span><span class=\"p\">[<\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">1<\/span><span class=\"p\">]],<\/span><span class=\"w\"> <\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">input<\/span><span class=\"p\">[<\/span><span class=\"nx\">prerequisites<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ bfs<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">numCourses<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">input<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">mapCourses<\/span><span class=\"p\">[<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">input<\/span><span class=\"p\">[<\/span><span class=\"nx\">value<\/span><span class=\"p\">]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">input<\/span><span class=\"p\">[<\/span><span class=\"nx\">value<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"p\">:]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">input<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"208\">208<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/implement-trie-prefix-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/implement-trie-prefix-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twozeroeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Trie<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">children<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"o\">*<\/span><span class=\"nx\">Trie<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">isEnd<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">Constructor<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"nx\">Trie<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">Trie<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Trie<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"nx\">word<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">word<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">-=<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Trie<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">isEnd<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Trie<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Search<\/span><span class=\"p\">(<\/span><span class=\"nx\">word<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">word<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">-=<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">isEnd<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">this<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Trie<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">StartsWith<\/span><span class=\"p\">(<\/span><span class=\"nx\">prefix<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">this<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">prefix<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">-=<\/span><span class=\"w\"> <\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">children<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"215\">215<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/kth-largest-element-in-an-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/kth-largest-element-in-an-array\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twoonefive<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;container\/heap&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxHeap<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Less<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Swap<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.(<\/span><span class=\"kt\">int<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[<\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[:<\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">findKthLargest<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxHeap<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Init<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">).(<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">k<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"226\">226<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/invert-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/invert-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twotwosix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">invertTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ root.Left = invertTree(root.Right)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ root.Right = invertTree(root.Left) \/\/ \u8fd9\u91cc\u7684 root.Left \u5df2\u7ecf\u88ab\u8986\u76d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newLeft<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">newRight<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">invertTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">),<\/span><span class=\"w\"> <\/span><span class=\"nf\">invertTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newLeft<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">newRight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"230\">230<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/kth-smallest-element-in-a-bst\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/kth-smallest-element-in-a-bst\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothreezero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">kthSmallest<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">k<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4e2d\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">k<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u627e\u5230\u7ed3\u679c\u5c31\u63d0\u524d\u7ed3\u675f\u9012\u5f52<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"234\">234<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/palindrome-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/palindrome-linked-list\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothreefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">isPalindrome<\/span><span class=\"p\">(<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u627e\u4e2d\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u53cd\u8f6c\u540e\u534a\u90e8\u5206\u94fe\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">slow<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6bd4\u8f83\u524d\u534a\u90e8\u5206\u548c\u540e\u534a\u90e8\u5206<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">head<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">head<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">ListNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newNode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">reverse<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Next<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">newNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"236\">236<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/lowest-common-ancestor-of-a-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/lowest-common-ancestor-of-a-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothreesix<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">lowestCommonAncestor<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">leftD<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">lowestCommonAncestor<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rightD<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">lowestCommonAncestor<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">leftD<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">rightD<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">leftD<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">rightD<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">rightD<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">leftD<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"238\">238<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/product-of-array-except-self\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/product-of-array-except-self\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothreeeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">productExceptSelf<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">preNums<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u524d\u7f00\u79ef<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sufNums<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u540e\u7f00\u79ef<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">preNums<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sufNums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">preNums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">preNums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sufNums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sufNums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">preNums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nx\">sufNums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"239\">239<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/sliding-window-maximum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/sliding-window-maximum\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twothreenine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ 2. \u53cc\u7aef\/\u5355\u8c03\u961f\u5217<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">maxSlidingWindow<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5b58\u50a8\u5143\u7d20\u7d22\u5f15\uff0c\u4fdd\u6301\u5355\u8c03\u9012\u51cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">push<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4fdd\u6301\u5355\u8c03\u7684push<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u7b2c\u4e00\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nf\">push<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">:]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ 1. \u5927\u6839\u5806<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ import (<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t&#34;container\/heap&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ )<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ type Item struct {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tvalue int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tindex int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ type MaxHeap []Item<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func (h MaxHeap) Len() int { return len(h) }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func (h MaxHeap) Less(i, j int) bool { return h[i].value &gt; h[j].value }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func (h MaxHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func (h *MaxHeap) Push(x any) {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t*h = append(*h, x.(Item))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func (h *MaxHeap) Pop() any {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tx := (*h)[len(*h)-1]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t*h = (*h)[:len(*h)-1]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \treturn x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ func maxSlidingWindow(nums []int, k int) []int {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tres := []int{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tstart := make([]Item, k)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tfor i := 0; i &lt; k; i++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\tstart[i] = Item{value: nums[i], index: i}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \th := MaxHeap(start)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \theap.Init(&amp;h)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tmaxNum := h[0].value \/\/ \u53ea\u67e5\u770b\u5806\u9876\uff0c\u5e76\u4e0dpop<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tres = append(res, maxNum)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \tfor i := k; i &lt; len(nums); i++ {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\theap.Push(&amp;h, Item{value: nums[i], index: i})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\/\/ \u5220\u9664\u524d\u9762\u5df2\u7ecf\u5e9f\u7528\u7684\u5806\u9876\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\tfor h.Len() &gt; 0 &amp;&amp; h[0].index &lt;= i-k {<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t\theap.Pop(&amp;h)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t\tres = append(res, h[0].value)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \t}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \treturn res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ }<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"240\">240<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/search-a-2d-matrix-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/search-a-2d-matrix-ii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twofourzero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">searchMatrix<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4ece\u53f3\u4e0a\u89d2\u5f00\u59cb<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">matrix<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">target<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"279\">279<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/perfect-squares\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/perfect-squares\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twosevennine<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">numSquares<\/span><span class=\"p\">(<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">dp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u5148\u5047\u8bbe\u4e00\u4e2a\u6700\u5927\u503c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">minn<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">*<\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">minn<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">min<\/span><span class=\"p\">(<\/span><span class=\"nx\">minn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"nx\">j<\/span><span class=\"o\">*<\/span><span class=\"nx\">j<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">minn<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"283\">283<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/move-zeroes\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/move-zeroes\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twoeightthree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">moveZeroes<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u56db\u79cd\u60c5\u51b5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">continue<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"287\">287<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/find-the-duplicate-number\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/find-the-duplicate-number\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">twoeightseven<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">findDuplicate<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8f6c\u6362\u4e3a\u627e\u73af\u5f62\u94fe\u8868\u7684\u5934<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5feb\u6162\u6307\u9488\u76f8\u9047<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">slow<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">slow<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">fast<\/span><span class=\"p\">]]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u627e\u73af\u8d77\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">slow<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">fast<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">fast<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">slow<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"322\">322<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/coin-change\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/coin-change\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threetwotwo<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">coinChange<\/span><span class=\"p\">(<\/span><span class=\"nx\">coins<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">dp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5c06\u6240\u6709\u503c\u8bbe\u4e3a amount + 1\uff0c\u76f8\u5f53\u4e8e\u201c\u65e0\u7a77\u5927\u201d\uff0c\u8868\u793a\u8be5\u91d1\u989d\u6682\u65f6\u65e0\u6cd5\u51d1\u9f50<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u51d1\u9f50\u91d1\u989d 0 \u6240\u9700\u786c\u5e01\u6570\u4e3a 0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">coins<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"nx\">coins<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">min<\/span><span class=\"p\">(<\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"nx\">coins<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]]<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">amount<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">amount<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">dp<\/span><span class=\"p\">[<\/span><span class=\"nx\">amount<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"347\">347<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/top-k-frequent-elements\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/top-k-frequent-elements\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">threefourseven<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;container\/heap&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Item<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">frequency<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">minHeap<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"nx\">Item<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Less<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">frequency<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">].<\/span><span class=\"nx\">frequency<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Swap<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.(<\/span><span class=\"nx\">Item<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[<\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[:<\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">topKFrequent<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">m<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">v<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">minHeap<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Init<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">m<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">Item<\/span><span class=\"p\">{<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heapLen<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">.<\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">heapLen<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">heapLen<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">res<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">).(<\/span><span class=\"nx\">Item<\/span><span class=\"p\">).<\/span><span class=\"nx\">value<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"437\">437<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/path-sum-iii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/path-sum-iii\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fourthreeseven<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">pathSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">targetSum<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">targetSum<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u8ba1\u7b97\u6839\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u9012\u5f52\u8ba1\u7b97\u6574\u68f5\u6811<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nf\">pathSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">targetSum<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nf\">pathSum<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">targetSum<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4ece\u5f53\u524d\u8282\u70b9\u5f00\u59cb\u7684\u8def\u5f84<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nowTarget<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">nowTarget<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ return \/\/ \u4e0d\u80fd return\uff0c\u6709\u8d1f\u6570\uff0c\u6240\u4ee5\u4e00\u6761\u8def\u5f84\u53ef\u80fd\u591a\u6b21\u6ee1\u8db3\u8981\u6c42<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">nowTarget<\/span><span class=\"w\"> <\/span><span class=\"o\">-=<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Val<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nowTarget<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">nowTarget<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"438\">438<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/find-all-anagrams-in-a-string\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/find-all-anagrams-in-a-string\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fourthreeeight<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">findAnagrams<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">p<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempP<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{},<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"mi\">26<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">p<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempP<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">p<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempS<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">tempP<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u6ed1\u52a8\u7a97\u53e3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">left<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">right<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tempS<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"sc\">&#39;a&#39;<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"543\">543<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/diameter-of-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/diameter-of-binary-tree\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivefourthree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Val<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Left<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">Right<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u8ba1\u7b97\u6bcf\u4e2a\u8282\u70b9\u7684\u5de6\u53f3\u5b50\u6811\u6df1\u5ea6\u548c\uff0c\u66f4\u65b0\u6700\u5927\u503c\u4e3a\u7ed3\u679c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">diameterOfBinaryTree<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">root<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5728\u6c42\u6df1\u5ea6\u8fc7\u7a0b\u4e2d\u66f4\u65b0 res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">TreeNode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">node<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">leftH<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rightH<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">dfs<\/span><span class=\"p\">(<\/span><span class=\"nx\">node<\/span><span class=\"p\">.<\/span><span class=\"nx\">Right<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">leftH<\/span><span class=\"o\">+<\/span><span class=\"nx\">rightH<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">leftH<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">rightH<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"560\">560<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/subarray-sum-equals-k\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/subarray-sum-equals-k\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">fivesixzero<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">subarraySum<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">k<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5b58\u5728\u8d1f\u6570\uff0c\u65e0\u6cd5\u4f7f\u7528\u6ed1\u52a8\u7a97\u53e3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u524d\u7f00\u548c + \u54c8\u5e0c\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">prefixSum<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">int<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u524d\u7f00\u548c -&gt; \u51fa\u73b0\u6b21\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u524d\u7f00\u548c\u4e3a 0 \u7684\u60c5\u51b5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">nums<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">prefixSum<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">nums<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">prefixSum<\/span><span class=\"o\">-<\/span><span class=\"nx\">k<\/span><span class=\"p\">];<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">v<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"p\">[<\/span><span class=\"nx\">prefixSum<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"763\">763<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/partition-labels\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/partition-labels\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">sevensixthree<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">partitionLabels<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">m<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">byte<\/span><span class=\"p\">]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6bcf\u4e2a\u5b57\u6bcd\u5bf9\u5e94\u7684\u6700\u540e\u4e0b\u6807<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">start<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">end<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">end<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">max<\/span><span class=\"p\">(<\/span><span class=\"nx\">end<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">m<\/span><span class=\"p\">[<\/span><span class=\"nx\">s<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">end<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">end<\/span><span class=\"o\">-<\/span><span class=\"nx\">start<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">start<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">end<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"994\">994<\/h3>\n<ul>\n<li>LeetCode: <a href=\"https:\/\/leetcode.cn\/problems\/rotting-oranges\/description\/?envType=study-plan-v2&amp;envId=top-100-liked\">https:\/\/leetcode.cn\/problems\/rotting-oranges\/description\/?envType=study-plan-v2&amp;envId=top-100-liked<\/a><\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">nineninefour<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">orangesRotting<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"w\"> <\/span><span class=\"p\">[][]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"nx\">pos<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5148\u653e\u6240\u6709\u70c2\u6a58\u5b50<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"p\">{<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ bfs<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">p<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u4e0a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"p\">{<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u4e0b<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"p\">{<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u5de6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"p\">{<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u53f3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">pos<\/span><span class=\"p\">{<\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">p<\/span><span class=\"p\">.<\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">q<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">q<\/span><span class=\"p\">[<\/span><span class=\"nx\">n<\/span><span class=\"p\">:]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">q<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">res<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8868\u793a\u8fd9\u4e00\u8f6e\u6709\u65b0\u7684\u611f\u67d3\u8005<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u662f\u5426\u8fd8\u6709\u597d\u6a58\u5b50<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">col<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">grid<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">][<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">res<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div>"},{"title":"K8s\u57fa\u7840\u4f7f\u7528","link":"https:\/\/hch1212.github.io\/posts\/2026\/03\/k8s%E5%9F%BA%E7%A1%80%E4%BD%BF%E7%94%A8\/","pubDate":"Tue, 03 Mar 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/03\/k8s%E5%9F%BA%E7%A1%80%E4%BD%BF%E7%94%A8\/","description":"<p>Kubernetes\uff08\u7b80\u79f0 K8s\uff09\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5bb9\u5668\u7f16\u6392\u5e73\u53f0\uff0c\u4e3b\u8981\u7528\u4e8e\u81ea\u52a8\u5316\u90e8\u7f72\u3001\u5f39\u6027\u6269\u7f29\u5bb9\u548c\u5bb9\u5668\u5316\u5e94\u7528\u7ba1\u7406\u3002<\/p>\n<h2 id=\"\u57fa\u7840\u6982\u5ff5\">\u57fa\u7840\u6982\u5ff5<\/h2>\n<ul>\n<li>Pod\uff1aK8s \u4e2d\u6700\u5c0f\u7684\u8c03\u5ea6\u5355\u5143\u3002\u4e00\u4e2a Pod \u901a\u5e38\u8fd0\u884c\u4e00\u4e2a\u5bb9\u5668\uff0c\u4e5f\u53ef\u4ee5\u8fd0\u884c\u4e00\u7ec4\u7d27\u5bc6\u534f\u4f5c\u7684\u5bb9\u5668\u3002<\/li>\n<li>Deployment\uff1a\u7528\u4e8e\u7ba1\u7406 Pod \u526f\u672c\u548c\u7248\u672c\uff0c\u652f\u6301\u6eda\u52a8\u66f4\u65b0\u4e0e\u56de\u6eda\u3002<\/li>\n<li>Service\uff1a\u4e3a\u4e00\u7ec4 Pod \u63d0\u4f9b\u7a33\u5b9a\u8bbf\u95ee\u5165\u53e3\u3002\u7531\u4e8e Pod IP \u4f1a\u53d8\u5316\uff0cService \u53ef\u4ee5\u63d0\u4f9b\u56fa\u5b9a\u5730\u5740\u5e76\u505a\u8d1f\u8f7d\u5747\u8861\u3002<\/li>\n<li>Namespace\uff1a\u903b\u8f91\u9694\u79bb\u673a\u5236\uff0c\u7528\u4e8e\u5728\u540c\u4e00\u96c6\u7fa4\u4e2d\u5212\u5206\u5f00\u53d1\u3001\u6d4b\u8bd5\u3001\u751f\u4ea7\u7b49\u73af\u5883\u3002<\/li>\n<\/ul>\n<h2 id=\"\u64cd\u4f5c\u6d41\u7a0b\">\u64cd\u4f5c\u6d41\u7a0b<\/h2>\n<ol>\n<li>\u7f16\u5199 YAML \u914d\u7f6e\u6587\u4ef6 <code>nginx-deployment.yaml<\/code><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">apiVersion<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">apps\/v1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">kind<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">Deployment<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">metadata<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nginx-home<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">spec<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">replicas<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">selector<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">matchLabels<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">app<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nginx<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">template<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">metadata<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">labels<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">app<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nginx<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">spec<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">containers<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nginx<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">nginx:1.21<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">ports<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">containerPort<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">80<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u63d0\u4ea4\u5230\u96c6\u7fa4<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl apply -f nginx-deployment.yaml\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u67e5\u770b\u72b6\u6001<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl get pods\n<\/span><\/span><span class=\"line\"><span class=\"cl\">kubectl get deployments\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5e38\u7528\u547d\u4ee4\">\u5e38\u7528\u547d\u4ee4<\/h2>\n<ol>\n<li>\u67e5\u8be2\u8d44\u6e90<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl get pods,svc,nodes\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u67e5\u770b\u8be6\u60c5<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl describe pod &lt;pod-name&gt;\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u67e5\u770b\u65e5\u5fd7<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl logs -f &lt;pod-name&gt;\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"4\">\n<li>\u8fdb\u5165\u5bb9\u5668<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl <span class=\"nb\">exec<\/span> -it &lt;pod-name&gt; -- sh\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"5\">\n<li>\u8c03\u6574\u526f\u672c\u6570<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl scale deployment &lt;name&gt; --replicas<span class=\"o\">=<\/span><span class=\"m\">5<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"6\">\n<li>\u5220\u9664\u8d44\u6e90<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">kubectl delete -f &lt;file.yaml&gt;\n<\/span><\/span><\/code><\/pre><\/div>"},{"title":"Go\u4e2d\u5806\u7684\u5b9e\u73b0","link":"https:\/\/hch1212.github.io\/posts\/2026\/02\/go%E4%B8%AD%E5%A0%86%E7%9A%84%E5%AE%9E%E7%8E%B0\/","pubDate":"Mon, 16 Feb 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/02\/go%E4%B8%AD%E5%A0%86%E7%9A%84%E5%AE%9E%E7%8E%B0\/","description":"<p>go\u4e2d\u5806\u7684\u5b9e\u73b0\u6ca1\u6709\u73b0\u6210\u7684\u5927\u5c0f\u6839\u5806\uff0c\u9700\u8981\u5b9e\u73b0\u76f8\u5e94\u7684\u63a5\u53e3\u518d\u521d\u59cb\u5316\u6210\u5806<\/p>\n<h2 id=\"\u63a5\u53e3\u6e90\u7801\">\u63a5\u53e3\u6e90\u7801<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ heap\u5305<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Interface<\/span><span class=\"w\"> <\/span><span class=\"kd\">interface<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sort<\/span><span class=\"p\">.<\/span><span class=\"nx\">Interface<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ Push \u5728\u96c6\u5408\u672b\u5c3e\uff08\u7d22\u5f15 Len() \u5904\uff09\u6dfb\u52a0\u5143\u7d20 x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ Pop \u79fb\u9664\u5e76\u8fd4\u56de\u96c6\u5408\u672b\u5c3e\uff08\u7d22\u5f15 Len()-1 \u5904\uff09\u7684\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ sort\u5305<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Interface<\/span><span class=\"w\"> <\/span><span class=\"kd\">interface<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ Len \u8fd4\u56de\u96c6\u5408\u4e2d\u7684\u5143\u7d20\u4e2a\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ Less \u62a5\u544a\u7d22\u5f15 i \u7684\u5143\u7d20\u662f\u5426\u5e94\u8be5\u6392\u5728\u7d22\u5f15 j \u7684\u5143\u7d20\u4e4b\u524d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5bf9\u4e8e\u5c0f\u9876\u5806\uff0c\u8fd9\u91cc\u5b9a\u4e49\u7684\u662f\u201c\u5c0f\u4e8e\u201d\u903b\u8f91<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5bf9\u4e8e\u5927\u9876\u5806\uff0c\u8fd9\u91cc\u5b9a\u4e49\u7684\u662f\u201c\u5927\u4e8e\u201d\u903b\u8f91<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">Less<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ Swap \u4ea4\u6362\u7d22\u5f15\u4e3a i \u548c j \u7684\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">Swap<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5c0f\u6839\u5806\">\u5c0f\u6839\u5806<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;container\/heap&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinHeap<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Less<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MinHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Swap<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.(<\/span><span class=\"kt\">int<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MinHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">data<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">MinHeap<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Init<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nb\">println<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">.(<\/span><span class=\"kt\">int<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u5927\u6839\u5806\">\u5927\u6839\u5806<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;container\/heap&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">MaxHeap<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MaxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MaxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Less<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8fd9\u91cc\u76f8\u53cd<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"nx\">MaxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Swap<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MaxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.(<\/span><span class=\"kt\">int<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">MaxHeap<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Pop<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">any<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)[:<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">data<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">MaxHeap<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Init<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Push<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">res<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">heap<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pop<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">h<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nb\">println<\/span><span class=\"p\">(<\/span><span class=\"nx\">res<\/span><span class=\"p\">.(<\/span><span class=\"kt\">int<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u6ce8\u610f\">\u6ce8\u610f<\/h2>\n<p>len less swap\u63a5\u53e3\u4e0d\u7528\u4f20h\u7684\u6307\u9488\uff0c\u56e0\u4e3a\u4e0d\u4f1a\u6539\u53d8\u5207\u7247\u5730\u5740<\/p>"},{"title":"Prometheus_grafana\u76d1\u63a7","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/prometheus_grafana%E7%9B%91%E6%8E%A7\/","pubDate":"Tue, 20 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/prometheus_grafana%E7%9B%91%E6%8E%A7\/","description":"<p>\u8fd9\u91cc\u7684\u6307\u6807\u4ee5\u8fdb\u7a0b\u5bfc\u51fa\u7684\u6307\u6807\u4e3a\u4f8b\uff0c\u73af\u5883\u662fLinux\n<a href=\"https:\/\/github.com\/ncabatoff\/process-exporter\">https:\/\/github.com\/ncabatoff\/process-exporter<\/a><\/p>\n<h2 id=\"\u4e00-\u5bfc\u51fa\u6307\u6807\">\u4e00. \u5bfc\u51fa\u6307\u6807<\/h2>\n<ol>\n<li>\u5b89\u88c5<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">wget https:\/\/github.com\/ncabatoff\/process-exporter\/releases\/download\/v0.8.7\/process-exporter-0.8.7.linux-amd64.tar.gz\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tar xvfz process-exporter-0.8.7.linux-amd64.tar.gz\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">cd<\/span> process-exporter-0.8.7.linux-amd64\n<\/span><\/span><span class=\"line\"><span class=\"cl\">.\/process-exporter --help\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u7f16\u5199\u914d\u7f6e\u6587\u4ef6<em>config.yaml<\/em><\/li>\n<\/ol>\n<p><em>\u67e5\u770b\u8fdb\u7a0b\u540d<\/em><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">ps -e -o comm\n<\/span><\/span><\/code><\/pre><\/div><p><em>\u914d\u7f6e\u6587\u4ef6\u91cc\u586b\u9700\u8981\u76d1\u63a7\u7684\u8fdb\u7a0b<\/em><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">process_names<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u76d1\u63a7\u6240\u6709 LovaniaServer \u8fdb\u7a0b<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;LovaniaServer&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">cmdline<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"s1\">&#39;LovaniaServer&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u8fd0\u884c<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">.\/process-exporter --config.path<span class=\"o\">=<\/span>config.yaml\n<\/span><\/span><\/code><\/pre><\/div><p>\u7136\u540e\u68c0\u67e5\u6307\u6807<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">curl http:\/\/localhost:9256\/metrics\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u4e8c-prometheus\u91c7\u96c6\u6307\u6807\">\u4e8c. prometheus\u91c7\u96c6\u6307\u6807<\/h2>\n<ol>\n<li>\u5b89\u88c5<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">wget https:\/\/github.com\/prometheus\/prometheus\/releases\/download\/v3.5.0\/prometheus-3.5.0.linux-amd64.tar.gz\n<\/span><\/span><span class=\"line\"><span class=\"cl\">tar xvf prometheus-3.5.0.linux-amd64.tar.gz\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">cd<\/span> prometheus-3.5.0.linux-amd64\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u7f16\u5199\u914d\u7f6e\u6587\u4ef6<em>prometheus.yaml<\/em><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">global<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">scrape_interval<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">15s<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">scrape_configs<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\">- <span class=\"nt\">job_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">node<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">static_configs<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">targets<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"s1\">&#39;localhost:9256&#39;<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u542f\u52a8<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">.\/prometheus --config.file<span class=\"o\">=<\/span>.\/prometheus.yaml\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"4\">\n<li>\u6253\u5f00\u6d4f\u89c8\u5668\u67e5\u770bweb\uff1a<a href=\"https:\/\/link.zhihu.com\/?target=http%3A\/\/localhost%3A9090\/\">http:\/\/localhost:9090\/<\/a><\/li>\n<\/ol>\n<p>\u5728query\u680f\u4e2d\u8f93\u5165\u67e5\u8be2\u6307\u6807\u5c31\u53ef\u83b7\u53d6\u5bf9\u5e94\u6570\u636e<\/p>"},{"title":"Tcp\u62e5\u585e\u63a7\u5236\u7b97\u6cd5\u4e4bbbr","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/tcp%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95%E4%B9%8Bbbr\/","pubDate":"Tue, 20 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/tcp%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6%E7%AE%97%E6%B3%95%E4%B9%8Bbbr\/","description":"<h2 id=\"\u4e00-\u73af\u5883\">\u4e00. \u73af\u5883<\/h2>\n<ol>\n<li>vmware\u865a\u62df\u673a<\/li>\n<li>iso\u955c\u50cf\uff1aubuntu-22.04.5-live-server-amd64.iso<\/li>\n<li>\u914d\u7f6e\uff1a2\u68384G<\/li>\n<\/ol>\n<h2 id=\"\u4e8c-\u9ed8\u8ba4\u7b97\u6cd5\">\u4e8c. \u9ed8\u8ba4\u7b97\u6cd5<\/h2>\n<h3 id=\"1-\u67e5\u770b\u5f53\u524d\u7684\u62e5\u585e\u63a7\u5236\u7b97\u6cd5\">1. \u67e5\u770b\u5f53\u524d\u7684\u62e5\u585e\u63a7\u5236\u7b97\u6cd5<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ sysctl net.ipv4.tcp_congestion_control\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&gt; net.ipv4.tcp_congestion_control <span class=\"o\">=<\/span> cubic\n<\/span><\/span><\/code><\/pre><\/div><p>\u53ef\u89c1\uff0c\u9ed8\u8ba4\u7684\u7b97\u6cd5\u662fcubic<\/p>\n<h3 id=\"2-cubic\u7b97\u6cd5\">2. cubic\u7b97\u6cd5<\/h3>\n<p>\u4e3b\u8981\u662f\u901a\u8fc7\u4e22\u5305\u6765\u8c03\u6574\u7a97\u53e3\u7684\u7684\u5927\u5c0f\uff0c\u63a7\u5236\u4f20\u8f93\u901f\u7387<\/p>\n<p>a. \u6162\u542f\u52a8<\/p>\n<p>\u6bcf\u6536\u5230\u4e00\u4e2aack\uff0c\u62e5\u585e\u7a97\u53e3\uff08cwnd\uff09\u5c31\u6307\u6570\u589e\u957f<\/p>\n<p>cwnd\uff1a1-2-4-8-16-32&hellip;<\/p>\n<p>b. \u62e5\u585e\u907f\u514d<\/p>\n<p>cubic\u7684\u6838\u5fc3\u90e8\u5206\uff0c\u4f7f\u7528\u4e09\u6b21\u51fd\u6570\u6765\u589e\u957f\u7a97\u53e3\uff08reno\u8fd9\u91cc\u662f\u7ebf\u6027\u589e\u957f\uff09<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-plain\" data-lang=\"plain\"><span class=\"line\"><span class=\"cl\">W(t) = C \u00d7 (t - K)\u00b3 + W_max\n<\/span><\/span><\/code><\/pre><\/div><p>c. \u5feb\u91cd\u4f20<\/p>\n<p>\u6536\u5230\u4e09\u4e2a\u91cd\u590dack\uff0c\u7acb\u5373\u91cd\u4f20\u4e22\u5931\u7684\u5305\uff0c\u4e0d\u7b49\u5f85\u8d85\u65f6<\/p>\n<p>d. \u5feb\u6062\u590d<\/p>\n<p>\u5feb\u91cd\u4f20\u540e\uff0cssthresh=cwnd*\u03b2\uff08\u4e00\u822c\u662f0.7\uff09, cwnd=ssthresh\uff0c\u7136\u540e\u76f4\u63a5\u8fdb\u5165\u62e5\u585e\u907f\u514d\u9636\u6bb5\uff08\u8df3\u8fc7\u6162\u542f\u52a8\uff09<\/p>\n<h2 id=\"\u4e09-\u5207\u6362\u4e3abbr\">\u4e09. \u5207\u6362\u4e3abbr<\/h2>\n<h3 id=\"1-\u67e5\u770b\u5f53\u524d\u652f\u6301\u7684\u62e5\u585e\u63a7\u5236\u7b97\u6cd5\">1. \u67e5\u770b\u5f53\u524d\u652f\u6301\u7684\u62e5\u585e\u63a7\u5236\u7b97\u6cd5<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ sysctl net.ipv4.tcp_available_congestion_control\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&gt; net.ipv4.tcp_available_congestion_control <span class=\"o\">=<\/span> reno cubic\n<\/span><\/span><\/code><\/pre><\/div><p>\u53d1\u73b0\u5e76\u6ca1\u6709bbr\uff0c\u96be\u9053\u662f\u4e0d\u652f\u6301\u5417<\/p>\n<p>\u67e5\u770b\u4e00\u4e0b\u5185\u6838\u7248\u672c<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ uname -r\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&gt; 5.15.0-119-generic\n<\/span><\/span><\/code><\/pre><\/div><p>\u5185\u6838\u7248\u672c&gt;4.9\u5c31\u652f\u6301bbr\uff0c\u6240\u4ee5\u9700\u8981\u6211\u4eec\u624b\u52a8\u52a0\u8f7dbbr\u6a21\u5757<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ sudo modprobe tcp_bbr\n<\/span><\/span><\/code><\/pre><\/div><p>\u518d\u6b21\u67e5\u770b<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">$ sysctl net.ipv4.tcp_available_congestion_control\n<\/span><\/span><span class=\"line\"><span class=\"cl\">&gt; net.ipv4.tcp_available_congestion_control <span class=\"o\">=<\/span> reno cubic bbr\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"2-\u5207\u6362\u4e3abbr\u7b97\u6cd5\">2. \u5207\u6362\u4e3abbr\u7b97\u6cd5<\/h3>\n<p>\u6211\u8fd9\u91cc\u4f7f\u7528\u4e34\u65f6\u5207\u6362\uff08\u91cd\u542f\u540e\u5931\u6548\uff09<\/p>"},{"title":"acid \u810f\u8bfb\u3001\u5e7b\u8bfb\u3001\u4e0d\u53ef\u91cd\u590d\u8bfb \u4e8b\u52a1\u9694\u79bb\u7ea7\u522b","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/acid-%E8%84%8F%E8%AF%BB%E5%B9%BB%E8%AF%BB%E4%B8%8D%E5%8F%AF%E9%87%8D%E5%A4%8D%E8%AF%BB-%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/acid-%E8%84%8F%E8%AF%BB%E5%B9%BB%E8%AF%BB%E4%B8%8D%E5%8F%AF%E9%87%8D%E5%A4%8D%E8%AF%BB-%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB\/","description":"<h2 id=\"acid\">acid<\/h2>\n<ol>\n<li>\u539f\u5b50\u6027\uff08Atomicity\uff09\uff1a\u4e8b\u52a1\u662f\u4e00\u4e2a\u4e0d\u53ef\u5206\u5272\u7684\u5de5\u4f5c\u5355\u4f4d\uff0c\u4e8b\u52a1\u4e2d\u5305\u62ec\u7684\u8bf8\u64cd\u4f5c\u8981\u4e48\u90fd\u505a\uff0c\u8981\u4e48\u90fd\u4e0d\u505a\u3002<\/li>\n<li>\u4e00\u81f4\u6027\uff08Consistency\uff09\uff1a\u4e8b\u52a1\u5fc5\u987b\u662f\u6570\u636e\u5e93\u4ece\u4e00\u4e2a\u4e00\u81f4\u6027\u72b6\u6001\u53d8\u5230\u53e6\u4e00\u4e2a\u4e00\u81f4\u6027\u72b6\u6001\u3002<\/li>\n<li>\u9694\u79bb\u6027\uff08Isolation\uff09\uff1a\u4e00\u4e2a\u4e8b\u52a1\u7684\u6267\u884c\u4e0d\u80fd\u88ab\u5176\u4ed6\u4e8b\u52a1\u5e72\u6270\u3002<\/li>\n<li>\u6301\u4e45\u6027\uff08Durability\uff09\uff1a\u4e00\u4e2a\u4e8b\u52a1\u4e00\u65e6\u63d0\u4ea4\uff0c\u5b83\u5bf9\u6570\u636e\u5e93\u4e2d\u6570\u636e\u7684\u6539\u53d8\u5c31\u5e94\u8be5\u662f\u6c38\u4e45\u6027\u7684\u3002<\/li>\n<\/ol>\n<blockquote>\n<p>\u4ee5\u4e0b\u90fd\u662f\u57fa\u4e8e\u591a\u4e2a\u4e8b\u52a1\u5e76\u53d1\u8bbf\u95ee\u540c\u4e00\u6570\u636e\u5bfc\u81f4\u7684\u95ee\u9898\u3002<\/p>\n<\/blockquote>\n<h2 id=\"\u810f\u8bfb\u5047\u6570\u636e\">\u810f\u8bfb\uff08\u5047\u6570\u636e\uff09<\/h2>\n<p>\u4e00\u4e2a\u4e8b\u52a1\u8bfb\u53d6\u5230\u4e86\u5176\u4ed6\u4e8b\u52a1\u672a\u63d0\u4ea4\u7684\u6570\u636e\u3002<\/p>\n<h2 id=\"\u4e0d\u53ef\u91cd\u590d\u8bfb\u53d8\u6570\u636e\">\u4e0d\u53ef\u91cd\u590d\u8bfb\uff08\u53d8\u6570\u636e\uff09<\/h2>\n<p>\u540c\u4e00\u4e8b\u52a1\u4e2d\u591a\u6b21\u8bfb\u53d6\u540c\u4e00\u6570\u636e\uff0c\u524d\u540e\u8bfb\u53d6\u7684\u7ed3\u679c\u4e0d\u540c\u3002\uff08\u4e8b\u52a12\u6267\u884cupdate \u6570\u636e\u53d8\u5316\uff09<\/p>\n<h2 id=\"\u5e7b\u8bfb\u65b0\u6570\u636e\">\u5e7b\u8bfb\uff08\u65b0\u6570\u636e\uff09<\/h2>\n<p>\u540c\u4e00\u4e8b\u52a1\u4e2d\u591a\u6b21\u67e5\u8be2\u540c\u4e00\u8303\u56f4\u7684\u6570\u636e\uff0c\u524d\u540e\u67e5\u8be2\u7ed3\u679c\u6570\u91cf\u4e0d\u540c\u3002\uff08\u4e8b\u52a12\u6267\u884cinsert\/delete \u6570\u636e\u91cf\u53d8\u5316\uff09<\/p>\n<h2 id=\"\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\">\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b<\/h2>\n<p>\u8bfb\u672a\u63d0\u4ea4\u3001\u8bfb\u5df2\u63d0\u4ea4\u3001\u53ef\u91cd\u590d\u8bfb\uff08mysql\u9ed8\u8ba4\uff09\u3001\u4e32\u884c\u5316\u3002<\/p>\n<table>\n <thead>\n <tr>\n <th>\u9694\u79bb\u7ea7\u522b<\/th>\n <th>\u810f\u8bfb<\/th>\n <th>\u4e0d\u53ef\u91cd\u590d\u8bfb<\/th>\n <th>\u5e7b\u8bfb<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>READ-UNCOMMITTED<\/td>\n <td>\u221a<\/td>\n <td>\u221a<\/td>\n <td>\u221a<\/td>\n <\/tr>\n <tr>\n <td>READ-COMMITTED<\/td>\n <td>\u00d7<\/td>\n <td>\u221a<\/td>\n <td>\u221a<\/td>\n <\/tr>\n <tr>\n <td>REPEATABLE-READ<\/td>\n <td>\u00d7<\/td>\n <td>\u00d7<\/td>\n <td>\u221a (\u00d7innodb)<\/td>\n <\/tr>\n <tr>\n <td>SERIALIZABLE<\/td>\n <td>\u00d7<\/td>\n <td>\u00d7<\/td>\n <td>\u00d7<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<blockquote>\n<p>\u5bf9\u4e8einnodb, RR\u7ea7\u522b\u4e0b\uff0c\u53ef\u4ee5\u907f\u514d\u5e7b\u8bfb\u3002\uff08\u4e0d\u8fc7\u53ef\u80fd\u6709\u5feb\u7167\u8bfb\u548c\u5f53\u524d\u8bfb\uff0c\u8fd8\u662f\u6709\u53ef\u80fd\u53d1\u751f\u5e7b\u8bfb\uff09<\/p>\n<\/blockquote>\n<ul>\n<li>\u83b7\u53d6\u5f53\u524d\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff1a<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-sql\" data-lang=\"sql\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">SELECT<\/span><span class=\"w\"> <\/span><span class=\"o\">@@<\/span><span class=\"n\">tx_isolation<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u8bbe\u7f6e\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\uff1a<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-sql\" data-lang=\"sql\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">SET<\/span><span class=\"w\"> <\/span><span class=\"k\">SESSION<\/span><span class=\"w\"> <\/span><span class=\"k\">TRANSACTION<\/span><span class=\"w\"> <\/span><span class=\"k\">ISOLATION<\/span><span class=\"w\"> <\/span><span class=\"k\">LEVEL<\/span><span class=\"w\"> <\/span><span class=\"k\">READ<\/span><span class=\"o\">-<\/span><span class=\"k\">COMMITTED<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div>"},{"title":"b+\u6811\u548c\u8df3\u8868","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/b-%E6%A0%91%E5%92%8C%E8%B7%B3%E8%A1%A8\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/b-%E6%A0%91%E5%92%8C%E8%B7%B3%E8%A1%A8\/","description":"<h2 id=\"b\u6811\u548c\u8df3\u8868\">b+\u6811\u548c\u8df3\u8868<\/h2>\n<ul>\n<li>mysql \u4e2d\u4f7f\u7528 b+ \u6811\u6765\u5b58\u50a8\u6570\u636e\u3002<\/li>\n<li>redis \u7684\u6709\u5e8f\u96c6\u5408\u4f7f\u7528\u8df3\u8868\u6765\u5b9e\u73b0\u3002<\/li>\n<\/ul>\n<h2 id=\"b\u6811\">b+\u6811<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/b+.png\" alt=\"img\"><\/p>\n<ul>\n<li>\u53ea\u6709\u53f6\u5b50\u8282\u70b9\u624d\u5b58\u50a8\u6570\u636e\uff0c\u4e2d\u95f4\u8282\u70b9\u53ea\u5b58\u50a8\u7d22\u5f15\u3002<\/li>\n<li>\u975e\u53f6\u5b50\u8282\u70b9\u7684\u7d22\u5f15\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u4ece\u800c\u5b9e\u73b0\u8303\u56f4\u67e5\u8be2\u3002<\/li>\n<li>\u53f6\u5b50\u8282\u70b9\u91c7\u7528\u5355\u5411\u94fe\u8868\u8fde\u63a5\u3002<\/li>\n<\/ul>\n<h2 id=\"\u8df3\u8868\">\u8df3\u8868<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/skiplist.png\" alt=\"img\"><\/p>\n<ul>\n<li>\u8df3\u8868\u7684\u6bcf\u4e2a\u8282\u70b9\uff08\u9664\u5934\u8282\u70b9\u548c\u5c3e\u8282\u70b9\uff09\u90fd\u5b58\u50a8\u6570\u636e\uff0c\u540c\u65f6\u7ef4\u62a4\u6307\u5411\u5176\u4ed6\u8282\u70b9\u7684\u6307\u9488\u3002<\/li>\n<li>\u8df3\u8868\u7684\u6700\u4f4e\u5c42\u662f\u5b8c\u6574\u7684\u53cc\u5411\u94fe\u8868\uff0c\u5b58\u50a8\u6240\u6709\u6570\u636e\u8282\u70b9\uff1b\u9ad8\u5c42\u662f\u7a00\u758f\u7684\u5355\u5411\u94fe\u8868\uff0c\u7528\u4e8e\u52a0\u901f\u67e5\u627e\u3002<\/li>\n<\/ul>\n<h2 id=\"\u4e3a\u4ec0\u4e48innodb\u4f7f\u7528b\u6811redis\u4f7f\u7528\u8df3\u8868\">\u4e3a\u4ec0\u4e48innoDB\u4f7f\u7528b+\u6811\uff0credis\u4f7f\u7528\u8df3\u8868\uff1f<\/h2>\n<ul>\n<li>b+\u6811\u7684\u9ad8\u5ea6\u66f4\u4f4e\uff0cio\u5c11\uff0c\u9002\u5408\u78c1\u76d8\u5b58\u50a8\uff08redis\u57fa\u4e8e\u5185\u5b58\uff0cio\u5f71\u54cd\u4e0d\u5927\uff09\u3002<\/li>\n<li>\u8303\u56f4\u67e5\u8be2\uff0cb+\u6811\u652f\u6301\uff0c\u8df3\u8868\u4e0d\u652f\u6301\u3002<\/li>\n<li>\u8df3\u8868\u5b9e\u73b0\u8f83\u7b80\u5355\uff0cb+\u6811\u5b9e\u73b0\u8f83\u590d\u6742\u3002<\/li>\n<\/ul>\n<table>\n <thead>\n <tr>\n <th>\u7ef4\u5ea6<\/th>\n <th>InnoDB\uff08B + \u6811\uff09<\/th>\n <th>Redis\uff08\u8df3\u8868\uff09<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>\u5b58\u50a8\u4ecb\u8d28<\/td>\n <td>\u78c1\u76d8\uff08I\/O \u6210\u672c\u9ad8\uff09<\/td>\n <td>\u5185\u5b58\uff08\u8bbf\u95ee\u901f\u5ea6\u6781\u5feb\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u6570\u636e\u89c4\u6a21<\/td>\n <td>\u6d77\u91cf\u6570\u636e\uff08GB \u7ea7 +\uff09<\/td>\n <td>\u4e2d\u5c0f\u89c4\u6a21\u6570\u636e\uff08GB \u7ea7 -\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u67e5\u8be2\u7c7b\u578b<\/td>\n <td>\u8303\u56f4\u67e5\u8be2\u4e3a\u4e3b\uff0c\u9700\u652f\u6301\u590d\u6742 SQL<\/td>\n <td>\u5355\u70b9\u67e5\u8be2\u4e3a\u4e3b\uff0c\u5c11\u91cf\u8303\u56f4\u67e5\u8be2\uff08\u5982\u6392\u884c\u699c\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u66f4\u65b0\u9891\u7387<\/td>\n <td>\u76f8\u5bf9\u8f83\u4f4e\uff08\u5199\u64cd\u4f5c\u6d89\u53ca\u78c1\u76d8 I\/O\uff09<\/td>\n <td>\u9ad8\uff08\u5185\u5b58\u64cd\u4f5c\u65e0 I\/O \u5ef6\u8fdf\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u5b9e\u73b0\u590d\u6742\u5ea6<\/td>\n <td>\u9ad8\uff08\u9700\u5e73\u8861\u6811\u7ed3\u6784\u3001\u4e8b\u52a1\u3001\u6301\u4e45\u5316\uff09<\/td>\n <td>\u4f4e\uff08\u968f\u673a\u5c42\u7ea7 + \u7b80\u5355\u6307\u9488\u64cd\u4f5c\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u6838\u5fc3\u76ee\u6807<\/td>\n <td>\u6570\u636e\u6301\u4e45\u5316\u3001\u590d\u6742\u67e5\u8be2\u6027\u80fd\u3001\u7a33\u5b9a\u6027<\/td>\n <td>\u5185\u5b58\u9ad8\u6027\u80fd\u3001\u7b80\u5355\u6570\u636e\u7ed3\u6784\u3001\u5feb\u901f\u8bfb\u5199<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h2 id=\"go-\u5b9e\u73b0\u8df3\u8868\">go \u5b9e\u73b0\u8df3\u8868<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;math&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;math\/rand&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;time&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">const<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">maxLevel<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6700\u5927\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">probability<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.25<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u664b\u5347\u6982\u7387\uff0c\u63a7\u5236\u5c42\u7ea7\u5206\u5e03<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ SkipList \u8df3\u8868\u7ed3\u6784<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">SkipList<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">header<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5934\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c3e\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">length<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5143\u7d20\u6570\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5f53\u524d\u6700\u5927\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">randSource<\/span><span class=\"w\"> <\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nx\">Source<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u968f\u673a\u6570\u751f\u6210\u5668<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">probTable<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">float64<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9884\u8ba1\u7b97\u7684\u6982\u7387\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Node \u8df3\u8868\u8282\u70b9\u7ed3\u6784<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6210\u5458\u540d\u79f0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5206\u6570\uff0c\u6392\u5e8f\u4f9d\u636e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">backward<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u540e\u9000\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"nx\">NodeLevel<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c42\u7ea7\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ NodeLevel \u8282\u70b9\u5c42\u7ea7\u7ed3\u6784<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">NodeLevel<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u524d\u5411\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8de8\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ NewSkipList \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u8df3\u8868\u5b9e\u4f8b<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">NewSkipList<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u968f\u673a\u6570\u751f\u6210\u5668<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">randSource<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewSource<\/span><span class=\"p\">(<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Now<\/span><span class=\"p\">().<\/span><span class=\"nf\">UnixNano<\/span><span class=\"p\">())<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521b\u5efa\u5934\u8282\u70b9\u548c\u5c3e\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">header<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">level<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">NodeLevel<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">NodeLevel<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">forward<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">span<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u5934\u8282\u70b9\u7684\u6240\u6709\u5c42\u7ea7\u90fd\u6307\u5411\u5c3e\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u9884\u8ba1\u7b97\u6982\u7387\u8868\uff0c\u7528\u4e8e\u5feb\u901f\u8ba1\u7b97\u968f\u673a\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">probTable<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">probTable<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">math<\/span><span class=\"p\">.<\/span><span class=\"nf\">Pow<\/span><span class=\"p\">(<\/span><span class=\"nx\">probability<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">float64<\/span><span class=\"p\">(<\/span><span class=\"nx\">i<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">header<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">header<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">tail<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">tail<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">length<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">level<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">randSource<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">randSource<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">probTable<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">probTable<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ randomLevel \u751f\u6210\u968f\u673a\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">randomLevel<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">r<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">float64<\/span><span class=\"p\">(<\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">New<\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">randSource<\/span><span class=\"p\">).<\/span><span class=\"nf\">Int63<\/span><span class=\"p\">())<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;&lt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">63<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">probTable<\/span><span class=\"p\">[<\/span><span class=\"nx\">level<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">level<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">level<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">level<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Insert \u63d2\u5165\u65b0\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u67e5\u627e\u63d2\u5165\u4f4d\u7f6e\u5e76\u8bb0\u5f55\u8def\u5f84<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">update<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521b\u5efa\u65b0\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">newLevel<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">randomLevel<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">Node<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">member<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">score<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">backward<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">level<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">NodeLevel<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">newLevel<\/span><span class=\"p\">),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u65b0\u8282\u70b9\u7684\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">newLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">NodeLevel<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">forward<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">span<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u66f4\u65b0\u6307\u9488\u548c\u8de8\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">newLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u66f4\u65b0\u8de8\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5904\u7406\u672a\u89e6\u53ca\u7684\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">newLevel<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8bbe\u7f6e\u540e\u9000\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Delete \u5220\u9664\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u67e5\u627e\u8981\u5220\u9664\u7684\u8282\u70b9\u5e76\u8bb0\u5f55\u8def\u5f84<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">update<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"o\">*<\/span><span class=\"nx\">Node<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxLevel<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u68c0\u67e5\u662f\u5426\u627e\u5230\u8981\u5220\u9664\u7684\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u66f4\u65b0\u6307\u9488\u548c\u8de8\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">update<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u66f4\u65b0\u540e\u9000\u6307\u9488<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">backward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u66f4\u65b0\u8df3\u8868\u7684\u6700\u5927\u5c42\u7ea7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ GetRank \u83b7\u53d6\u5143\u7d20\u6392\u540d\uff08\u4ece1\u5f00\u59cb\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetRank<\/span><span class=\"p\">(<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u5982\u679c\u627e\u5230\u5b8c\u5168\u5339\u914d\u7684\u5143\u7d20\uff0c\u8fd4\u56de\u6392\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u672a\u627e\u5230\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ GetElementByRank \u6839\u636e\u6392\u540d\u83b7\u53d6\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetElementByRank<\/span><span class=\"p\">(<\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">accumulatedRank<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">accumulatedRank<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">accumulatedRank<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">span<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">accumulatedRank<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">rank<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u672a\u627e\u5230<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Find \u67e5\u627e\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Find<\/span><span class=\"p\">(<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">bool<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">||<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t <\/span><span class=\"p\">(<\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Range \u67e5\u8be2\u8303\u56f4\u5185\u7684\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Range<\/span><span class=\"p\">(<\/span><span class=\"nx\">minScore<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxScore<\/span><span class=\"w\"> <\/span><span class=\"kt\">float64<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">result<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">header<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u627e\u5230\u7b2c\u4e00\u4e2a\u5927\u4e8e\u7b49\u4e8eminScore\u7684\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">minScore<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4ece\u8be5\u8282\u70b9\u5f00\u59cb\u904d\u5386\uff0c\u6536\u96c6\u6240\u6709\u5c0f\u4e8e\u7b49\u4e8emaxScore\u7684\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">tail<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">maxScore<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">result<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">result<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;(%s, %.2f)&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">member<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">score<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">x<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">x<\/span><span class=\"p\">.<\/span><span class=\"nx\">level<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"nx\">forward<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">result<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Len \u8fd4\u56de\u8df3\u8868\u957f\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">SkipList<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Len<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nx\">length<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Example \u4f7f\u7528\u793a\u4f8b<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521b\u5efa\u8df3\u8868<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">NewSkipList<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u63d2\u5165\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"mf\">85.5<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player1&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"mf\">90.0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player2&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"mf\">78.2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player3&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"mf\">92.3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player4&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Insert<\/span><span class=\"p\">(<\/span><span class=\"mf\">88.1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player5&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u67e5\u8be2\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u67e5\u627eplayer3:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Find<\/span><span class=\"p\">(<\/span><span class=\"mf\">78.2<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player3&#34;<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u67e5\u627eplayer6:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Find<\/span><span class=\"p\">(<\/span><span class=\"mf\">95.0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player6&#34;<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: false<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u83b7\u53d6\u6392\u540d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;player4\u7684\u6392\u540d:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetRank<\/span><span class=\"p\">(<\/span><span class=\"mf\">92.3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player4&#34;<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: 1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6839\u636e\u6392\u540d\u83b7\u53d6\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">member<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetElementByRank<\/span><span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u6392\u540d\u7b2c3\u7684\u5143\u7d20: %s (%.2f)\\n&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">member<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">score<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: player1 (85.50)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8303\u56f4\u67e5\u8be2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u5206\u6570\u572880-90\u4e4b\u95f4\u7684\u5143\u7d20:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Range<\/span><span class=\"p\">(<\/span><span class=\"mf\">80.0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">90.0<\/span><span class=\"p\">))<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [(player1, 85.50), (player5, 88.10)]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5220\u9664\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">Delete<\/span><span class=\"p\">(<\/span><span class=\"mf\">90.0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player2&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u5220\u9664player2\u540e\uff0cplayer2\u7684\u6392\u540d:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">sl<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetRank<\/span><span class=\"p\">(<\/span><span class=\"mf\">90.0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;player2&#34;<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: 0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div>"},{"title":"Cookie Session Token","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/cookie-session-token\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/cookie-session-token\/","description":"<table>\n <thead>\n <tr>\n <th style=\"text-align: left\">\u7279\u6027<\/th>\n <th style=\"text-align: left\">Cookie<\/th>\n <th style=\"text-align: left\">Session<\/th>\n <th style=\"text-align: left\">Token<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td style=\"text-align: left\"><strong>\u672c\u8d28<\/strong><\/td>\n <td style=\"text-align: left\">\u5ba2\u6237\u7aef\u5b58\u50a8\u6280\u672f<\/td>\n <td style=\"text-align: left\">\u670d\u52a1\u7aef\u72b6\u6001\u7ba1\u7406\u673a\u5236<\/td>\n <td style=\"text-align: left\">\u6388\u6743\u51ed\u8bc1\u3001\u8eab\u4efd\u4ee4\u724c<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u6570\u636e\u5185\u5bb9<\/strong><\/td>\n <td style=\"text-align: left\">\u5c11\u91cf\u6587\u672c\u6570\u636e\uff08\u5982 Session ID\u3001\u7528\u6237\u504f\u597d\u7b49\uff09<\/td>\n <td style=\"text-align: left\">\u670d\u52a1\u5668\u5b58\u50a8\u7684\u5b8c\u6574\u7528\u6237\u6570\u636e\uff08\u5982\u767b\u5f55\u72b6\u6001\u3001\u8d2d\u7269\u8f66\uff09<\/td>\n <td style=\"text-align: left\">\u7528\u6237\u7684\u8eab\u4efd\u4fe1\u606f\u548c\u6743\u9650\uff0c\u901a\u5e38\u662f\u81ea\u5305\u542b\u7684<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u5b58\u50a8\u4f4d\u7f6e<\/strong><\/td>\n <td style=\"text-align: left\"><strong>\u5ba2\u6237\u7aef\u6d4f\u89c8\u5668<\/strong><\/td>\n <td style=\"text-align: left\"><strong>\u670d\u52a1\u7aef\u5185\u5b58\u6216\u6570\u636e\u5e93<\/strong><\/td>\n <td style=\"text-align: left\"><strong>\u5ba2\u6237\u7aef<\/strong>\uff08\u901a\u5e38\u662f\u6d4f\u89c8\u5668\u5b58\u50a8\uff0c\u5982 LocalStorage\u3001Cookie\uff09<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u8ba4\u8bc1\u6a21\u5f0f<\/strong><\/td>\n <td style=\"text-align: left\">\u8f85\u52a9\u8ba4\u8bc1\uff0c\u5b58\u50a8 Session ID<\/td>\n <td style=\"text-align: left\"><strong>\u6709\u72b6\u6001\u8ba4\u8bc1<\/strong>\uff0c\u670d\u52a1\u5668\u9700\u8981\u5b58\u50a8\u5e76\u67e5\u8be2\u4f1a\u8bdd<\/td>\n <td style=\"text-align: left\"><strong>\u65e0\u72b6\u6001\u8ba4\u8bc1<\/strong>\uff0c\u670d\u52a1\u5668\u4e0d\u5b58\u50a8\u4f1a\u8bdd\u4fe1\u606f<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u5de5\u4f5c\u539f\u7406<\/strong><\/td>\n <td style=\"text-align: left\">\u670d\u52a1\u5668\u53d1\u9001 <code>Set-Cookie<\/code> \u5934\uff0c\u6d4f\u89c8\u5668\u81ea\u52a8\u643a\u5e26 <code>Cookie<\/code> \u5934<\/td>\n <td style=\"text-align: left\">\u6d4f\u89c8\u5668\u901a\u8fc7 Cookie \u643a\u5e26 Session ID\uff0c\u670d\u52a1\u5668\u6839\u636e ID \u67e5\u627e\u4f1a\u8bdd<\/td>\n <td style=\"text-align: left\">\u670d\u52a1\u5668\u751f\u6210 Token\uff0c\u5ba2\u6237\u7aef\u6bcf\u6b21\u8bf7\u6c42\u65f6\u5728 <code>Authorization<\/code> \u5934\u4e2d\u643a\u5e26<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u5b89\u5168\u6027<\/strong><\/td>\n <td style=\"text-align: left\">\u8f83\u4f4e\u3002\u6613\u88ab\u7a83\u53d6\u548c\u7be1\u6539\u3002<\/td>\n <td style=\"text-align: left\">\u8f83\u9ad8\u3002\u654f\u611f\u6570\u636e\u5728\u670d\u52a1\u7aef\uff0c\u4f46\u4f9d\u8d56 Cookie \u6613\u53d7 CSRF \u653b\u51fb\u3002<\/td>\n <td style=\"text-align: left\">\u8f83\u9ad8\u3002\u4f7f\u7528\u7b7e\u540d\u9632\u6b62\u7be1\u6539\uff0c\u4f46 Token \u4e00\u65e6\u6cc4\u9732\uff0c\u96be\u4ee5\u540a\u9500\u3002<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u5b58\u50a8\u5927\u5c0f<\/strong><\/td>\n <td style=\"text-align: left\">\u6781\u5c0f\uff0c\u901a\u5e38 4KB<\/td>\n <td style=\"text-align: left\">\u8f83\u5927\uff0c\u53d6\u51b3\u4e8e\u670d\u52a1\u5668\u8d44\u6e90<\/td>\n <td style=\"text-align: left\">\u53ef\u5927\u53ef\u5c0f\uff0c\u53d6\u51b3\u4e8e\u5b58\u50a8\u7684\u6570\u636e\uff0c\u901a\u5e38\u4e3a\u51e0\u5341\u5230\u51e0\u767e\u5b57\u8282<\/td>\n <\/tr>\n <tr>\n <td style=\"text-align: left\"><strong>\u4f7f\u7528\u573a\u666f<\/strong><\/td>\n <td style=\"text-align: left\">\u7f51\u7ad9\u4e2a\u6027\u5316\u3001\u8ddf\u8e2a\u7528\u6237\u884c\u4e3a\u3001\u5b58\u50a8\u4e0d\u654f\u611f\u6570\u636e<\/td>\n <td style=\"text-align: left\">\u4f20\u7edf Web \u5e94\u7528\u7684\u767b\u5f55\u3001\u8d2d\u7269\u8f66\u7b49\u9700\u8981\u5b58\u50a8\u5927\u91cf\u4f1a\u8bdd\u6570\u636e\u7684\u573a\u666f<\/td>\n <td style=\"text-align: left\">API \u8ba4\u8bc1\u3001\u79fb\u52a8\u5e94\u7528\u3001\u524d\u540e\u7aef\u5206\u79bb\u5e94\u7528\u3001\u5fae\u670d\u52a1\u67b6\u6784<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h3 id=\"\u4e09\u8005\u4e4b\u95f4\u7684\u5173\u7cfb\u603b\u7ed3\">\u4e09\u8005\u4e4b\u95f4\u7684\u5173\u7cfb\u603b\u7ed3<\/h3>\n<ol>\n<li>\n<p><strong>Cookie \u548c Session \u7684\u5173\u7cfb<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>Cookie \u662f\u4e00\u79cd\u5de5\u5177\uff0cSession \u662f\u4e00\u79cd\u673a\u5236<\/strong>\u3002<\/li>\n<li>\u4f20\u7edf\u7684 Session \u8ba4\u8bc1\u673a\u5236<strong>\u4f9d\u8d56\u4e8e Cookie<\/strong>\u3002\u670d\u52a1\u5668\u751f\u6210 Session\uff0c\u7136\u540e\u628a\u552f\u4e00\u7684 Session ID \u653e\u5728 Cookie \u4e2d\u53d1\u7ed9\u6d4f\u89c8\u5668\u3002\u6d4f\u89c8\u5668\u5728\u540e\u7eed\u8bf7\u6c42\u4e2d\u643a\u5e26\u8fd9\u4e2a Cookie\uff0c\u670d\u52a1\u5668\u624d\u80fd\u8bc6\u522b\u7528\u6237\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Session \u548c Token \u7684\u5173\u7cfb<\/strong>\uff1a<\/p>"},{"title":"docker\u6302\u8f7d\u8def\u5f84\u95ee\u9898","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/docker%E6%8C%82%E8%BD%BD%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/docker%E6%8C%82%E8%BD%BD%E8%B7%AF%E5%BE%84%E9%97%AE%E9%A2%98\/","description":"<h1 id=\"docker-volume-\u6302\u8f7d\u5931\u6548\u95ee\u9898\u4e3a\u4ec0\u4e48\u5220\u9664\u91cd\u5efa\u76ee\u5f55\u4f1a\u5bfc\u81f4\u5bb9\u5668\u627e\u4e0d\u5230\u8def\u5f84\">Docker Volume \u6302\u8f7d\u5931\u6548\u95ee\u9898\uff1a\u4e3a\u4ec0\u4e48\u5220\u9664\u91cd\u5efa\u76ee\u5f55\u4f1a\u5bfc\u81f4\u5bb9\u5668\u627e\u4e0d\u5230\u8def\u5f84\uff1f<\/h1>\n<h2 id=\"\u95ee\u9898\u80cc\u666f\">\u95ee\u9898\u80cc\u666f<\/h2>\n<p>\u5728\u4f7f\u7528 Docker \u90e8\u7f72\u5e94\u7528\u65f6\uff0c\u6211\u9047\u5230\u4e86\u4e00\u4e2a\u4ee4\u4eba\u56f0\u60d1\u7684\u95ee\u9898\uff1a<\/p>\n<ol>\n<li>\u901a\u8fc7 <code>docker-compose up -d<\/code> \u542f\u52a8\u4e86\u5bb9\u5668<\/li>\n<li>\u5220\u9664\u4e86\u5bbf\u4e3b\u673a\u4e0a\u7684\u6302\u8f7d\u76ee\u5f55\uff0c\u7136\u540e\u91cd\u65b0\u521b\u5efa<\/li>\n<li>\u5bb9\u5668\u5185\u7684\u7a0b\u5e8f\u62a5\u9519\uff1a<strong>\u627e\u4e0d\u5230\u6587\u4ef6\u8def\u5f84<\/strong><\/li>\n<\/ol>\n<p>\u660e\u660e\u76ee\u5f55\u548c\u6587\u4ef6\u90fd\u91cd\u65b0\u521b\u5efa\u4e86\uff0c\u4e3a\u4ec0\u4e48\u5bb9\u5668\u8fd8\u662f\u627e\u4e0d\u5230\uff1f<\/p>\n<h2 id=\"\u95ee\u9898\u590d\u73b0\">\u95ee\u9898\u590d\u73b0<\/h2>\n<p>\u4ee5\u6211\u7684\u9879\u76ee\u4e3a\u4f8b\uff0c<code>docker-compose.yml<\/code> \u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">services<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">gamerobot<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">build<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">container_name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">gamerobot<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">volumes<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"l\">\/home\/lovania\/server\/public:\/home\/lovania\/server\/public:ro<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># ... \u5176\u4ed6\u914d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p><strong>\u64cd\u4f5c\u6b65\u9aa4\uff1a<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 1. \u542f\u52a8\u5bb9\u5668<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">docker compose up -d gamerobot\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 2. \u5728\u5bbf\u4e3b\u673a\u4e0a\u5220\u9664\u5e76\u91cd\u5efa\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">rm -rf \/home\/lovania\/server\/public\n<\/span><\/span><span class=\"line\"><span class=\"cl\">mkdir -p \/home\/lovania\/server\/public\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u65b0\u521b\u5efa\u811a\u672c\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">touch \/home\/lovania\/server\/public\/start.sh\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 3. \u5bb9\u5668\u5185\u62a5\u9519<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># Error: \u811a\u672c\u6587\u4ef6\u4e0d\u5b58\u5728: \/home\/lovania\/server\/public\/start.sh<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u95ee\u9898\u539f\u56e0\u5206\u6790\">\u95ee\u9898\u539f\u56e0\u5206\u6790<\/h2>\n<p>\u8fd9\u4e2a\u95ee\u9898\u7684\u672c\u8d28\u662f <strong>Docker Volume \u6302\u8f7d\u673a\u5236<\/strong> \u5bfc\u81f4\u7684\u3002<\/p>"},{"title":"git \u5206\u652f\u5408\u5e76","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/git-%E5%88%86%E6%94%AF%E5%90%88%E5%B9%B6\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/git-%E5%88%86%E6%94%AF%E5%90%88%E5%B9%B6\/","description":"<h2 id=\"git-merge-\u4e0e-git-rebase-\u7684\u533a\u522b\">git merge \u4e0e git rebase \u7684\u533a\u522b<\/h2>\n<ul>\n<li>git merge\uff1a\u4fdd\u7559\u5206\u652f\u5386\u53f2\uff0c\u5c06\u4e24\u4e2a\u5206\u652f\u7684\u63d0\u4ea4\u5408\u5e76\uff0c\u4ea7\u751f\u4e00\u6b21\u65b0\u7684\u5408\u5e76\u63d0\u4ea4\u3002<\/li>\n<li>git rebase\uff1a\u91cd\u5199\u63d0\u4ea4\u5386\u53f2\uff0c\u5c06\u67d0\u4e2a\u5206\u652f\u7684\u63d0\u4ea4\u201c\u632a\u5230\u201d\u53e6\u4e00\u4e2a\u5206\u652f\u4e4b\u540e\uff0c\u5c31\u50cf\u662f\u4ece\u90a3\u513f\u5f00\u59cb\u7684\u65b0\u5206\u652f\u3002<\/li>\n<\/ul>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/git1.png\" alt=\"img\"><\/p>\n<h2 id=\"git-resetrollback-\u4e0e-git-revert-\u7684\u533a\u522b\">git reset(rollback) \u4e0e git revert \u7684\u533a\u522b<\/h2>\n<ul>\n<li>git revert\uff1a\u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u201c\u64a4\u9500\u63d0\u4ea4\u201d\uff0c\u4fdd\u7559\u5386\u53f2\u8bb0\u5f55\uff0c\u9002\u5408\u56e2\u961f\u534f\u4f5c\u3002<\/li>\n<li>git reset\uff1a\u76f4\u63a5\u201c\u56de\u6eda\u5386\u53f2\u5230\u67d0\u4e2a\u72b6\u6001\u201d\uff0c\u53ef\u80fd\u4f1a\u4fee\u6539\u63d0\u4ea4\u5386\u53f2\uff0c\u4e0d\u9002\u5408\u5df2 push \u7684\u4ee3\u7801\u3002<\/li>\n<\/ul>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/git2.png\" alt=\"img\"><\/p>"},{"title":"git \u5e38\u7528\u547d\u4ee4","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/git-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\/","description":"<p><strong>\u65e5\u5e38<\/strong>\uff1a<\/p>\n<pre tabindex=\"0\"><code>git checkout -b dev\/test origin\/dev\/test # \u521b\u5efa\u5e76\u5207\u6362\u5230\u672c\u5730dev\/test\u5206\u652f\n<\/code><\/pre><pre tabindex=\"0\"><code>git reset --hard {{\u54c8\u5e0c\u503c}} # \u56de\u9000\u5230\u6307\u5b9a\u7248\u672c\ngit push -f origin dev\/test # \u5f3a\u5236\u63a8\u9001\u672c\u5730dev\/test\u5206\u652f\u5230\u8fdc\u7a0b\n<\/code><\/pre><pre tabindex=\"0\"><code>git branch -vv # \u67e5\u770b\u8fdc\u7a0b\u5206\u652f\u7684\u8be6\u7ec6\u4fe1\u606f\ngit fetch origin # \u4ece\u8fdc\u7a0b\u83b7\u53d6\u6700\u65b0\u4ee3\u7801\n<\/code><\/pre><ol>\n<li><strong>\u65b0\u5efa\u4ee3\u7801\u5e93<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5728\u5f53\u524d\u76ee\u5f55\u65b0\u5efa\u4e00\u4e2aGit\u4ee3\u7801\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git init\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u76ee\u5f55\uff0c\u5c06\u5176\u521d\u59cb\u5316\u4e3aGit\u4ee3\u7801\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git init <span class=\"o\">[<\/span>project-name<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0b\u8f7d\u4e00\u4e2a\u9879\u76ee\u548c\u5b83\u7684\u6574\u4e2a\u4ee3\u7801\u5386\u53f2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git clone <span class=\"o\">[<\/span>url<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li><strong>\u914d\u7f6e<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u5f53\u524d\u7684Git\u914d\u7f6e<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git config --list\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u7f16\u8f91Git\u914d\u7f6e\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git config -e <span class=\"o\">[<\/span>--global<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u8bbe\u7f6e\u63d0\u4ea4\u4ee3\u7801\u65f6\u7684\u7528\u6237\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git config <span class=\"o\">[<\/span>--global<span class=\"o\">]<\/span> user.name <span class=\"s2\">&#34;[name]&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git config <span class=\"o\">[<\/span>--global<span class=\"o\">]<\/span> user.email <span class=\"s2\">&#34;[email address]&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li><strong>\u589e\u52a0\/\u5220\u9664\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6dfb\u52a0\u6307\u5b9a\u6587\u4ef6\u5230\u6682\u5b58\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add <span class=\"o\">[<\/span>file1<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file2<span class=\"o\">]<\/span> ...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6dfb\u52a0\u6307\u5b9a\u76ee\u5f55\u5230\u6682\u5b58\u533a\uff0c\u5305\u62ec\u5b50\u76ee\u5f55<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add <span class=\"o\">[<\/span>dir<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6dfb\u52a0\u5f53\u524d\u76ee\u5f55\u7684\u6240\u6709\u6587\u4ef6\u5230\u6682\u5b58\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add .\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6dfb\u52a0\u6bcf\u4e2a\u53d8\u5316\u524d\uff0c\u90fd\u4f1a\u8981\u6c42\u786e\u8ba4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5bf9\u4e8e\u540c\u4e00\u4e2a\u6587\u4ef6\u7684\u591a\u5904\u53d8\u5316\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5206\u6b21\u63d0\u4ea4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git add -p\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u5de5\u4f5c\u533a\u6587\u4ef6\uff0c\u5e76\u4e14\u5c06\u8fd9\u6b21\u5220\u9664\u653e\u5165\u6682\u5b58\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git rm <span class=\"o\">[<\/span>file1<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file2<span class=\"o\">]<\/span> ...\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u505c\u6b62\u8ffd\u8e2a\u6307\u5b9a\u6587\u4ef6\uff0c\u4f46\u8be5\u6587\u4ef6\u4f1a\u4fdd\u7559\u5728\u5de5\u4f5c\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git rm --cached <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6539\u540d\u6587\u4ef6\uff0c\u5e76\u4e14\u5c06\u8fd9\u4e2a\u6539\u540d\u653e\u5165\u6682\u5b58\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git mv <span class=\"o\">[<\/span>file-original<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file-renamed<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"4\">\n<li><strong>\u4ee3\u7801\u63d0\u4ea4<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u6682\u5b58\u533a\u5230\u4ed3\u5e93\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -m <span class=\"o\">[<\/span>message<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u6682\u5b58\u533a\u7684\u6307\u5b9a\u6587\u4ef6\u5230\u4ed3\u5e93\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit <span class=\"o\">[<\/span>file1<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file2<span class=\"o\">]<\/span> ... -m <span class=\"o\">[<\/span>message<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u5de5\u4f5c\u533a\u81ea\u4e0a\u6b21commit\u4e4b\u540e\u7684\u53d8\u5316\uff0c\u76f4\u63a5\u5230\u4ed3\u5e93\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u65f6\u663e\u793a\u6240\u6709diff\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit -v\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4f7f\u7528\u4e00\u6b21\u65b0\u7684commit\uff0c\u66ff\u4ee3\u4e0a\u4e00\u6b21\u63d0\u4ea4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5982\u679c\u4ee3\u7801\u6ca1\u6709\u4efb\u4f55\u65b0\u53d8\u5316\uff0c\u5219\u7528\u6765\u6539\u5199\u4e0a\u4e00\u6b21commit\u7684\u63d0\u4ea4\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit --amend -m <span class=\"o\">[<\/span>message<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u505a\u4e0a\u4e00\u6b21commit\uff0c\u5e76\u5305\u62ec\u6307\u5b9a\u6587\u4ef6\u7684\u65b0\u53d8\u5316<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git commit --amend <span class=\"o\">[<\/span>file1<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file2<span class=\"o\">]<\/span> ...\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"5\">\n<li><strong>\u5206\u652f<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5217\u51fa\u6240\u6709\u672c\u5730\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5217\u51fa\u6240\u6709\u8fdc\u7a0b\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch -r\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5217\u51fa\u6240\u6709\u672c\u5730\u5206\u652f\u548c\u8fdc\u7a0b\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch -a\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u4f46\u4f9d\u7136\u505c\u7559\u5728\u5f53\u524d\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch <span class=\"o\">[<\/span>branch-name<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u5e76\u5207\u6362\u5230\u8be5\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout -b <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u6307\u5411\u6307\u5b9acommit<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u4e0e\u6307\u5b9a\u7684\u8fdc\u7a0b\u5206\u652f\u5efa\u7acb\u8ffd\u8e2a\u5173\u7cfb<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch --track <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>remote-branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5207\u6362\u5230\u6307\u5b9a\u5206\u652f\uff0c\u5e76\u66f4\u65b0\u5de5\u4f5c\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout <span class=\"o\">[<\/span>branch-name<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5207\u6362\u5230\u4e0a\u4e00\u4e2a\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout -\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5efa\u7acb\u8ffd\u8e2a\u5173\u7cfb\uff0c\u5728\u73b0\u6709\u5206\u652f\u4e0e\u6307\u5b9a\u7684\u8fdc\u7a0b\u5206\u652f\u4e4b\u95f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch --set-upstream <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>remote-branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5408\u5e76\u6307\u5b9a\u5206\u652f\u5230\u5f53\u524d\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git merge <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u9009\u62e9\u4e00\u4e2acommit\uff0c\u5408\u5e76\u8fdb\u5f53\u524d\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git cherry-pick <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch -d <span class=\"o\">[<\/span>branch-name<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u8fdc\u7a0b\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push origin --delete <span class=\"o\">[<\/span>branch-name<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git branch -dr <span class=\"o\">[<\/span>remote\/branch<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"6\">\n<li><strong>\u6807\u7b7e<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5217\u51fa\u6240\u6709tag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2atag\u5728\u5f53\u524dcommit<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2atag\u5728\u6307\u5b9acommit<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u672c\u5730tag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git tag -d <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5220\u9664\u8fdc\u7a0btag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push origin :refs\/tags\/<span class=\"o\">[<\/span>tagName<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u67e5\u770btag\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u6307\u5b9atag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63d0\u4ea4\u6240\u6709tag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> --tags\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2a\u5206\u652f\uff0c\u6307\u5411\u67d0\u4e2atag<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout -b <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"7\">\n<li><strong>\u67e5\u770b\u4fe1\u606f<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6709\u53d8\u66f4\u7684\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git status\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u5f53\u524d\u5206\u652f\u7684\u7248\u672c\u5386\u53f2<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793acommit\u5386\u53f2\uff0c\u4ee5\u53ca\u6bcf\u6b21commit\u53d1\u751f\u53d8\u66f4\u7684\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --stat\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u641c\u7d22\u63d0\u4ea4\u5386\u53f2\uff0c\u6839\u636e\u5173\u952e\u8bcd<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log -S <span class=\"o\">[<\/span>keyword<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u4e2acommit\u4e4b\u540e\u7684\u6240\u6709\u53d8\u52a8\uff0c\u6bcf\u4e2acommit\u5360\u636e\u4e00\u884c<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span> HEAD --pretty<span class=\"o\">=<\/span>format:%s\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u4e2acommit\u4e4b\u540e\u7684\u6240\u6709\u53d8\u52a8\uff0c\u5176&#34;\u63d0\u4ea4\u8bf4\u660e&#34;\u5fc5\u987b\u7b26\u5408\u641c\u7d22\u6761\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log <span class=\"o\">[<\/span>tag<span class=\"o\">]<\/span> HEAD --grep feature\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u4e2a\u6587\u4ef6\u7684\u7248\u672c\u5386\u53f2\uff0c\u5305\u62ec\u6587\u4ef6\u6539\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log --follow <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git whatchanged <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6307\u5b9a\u6587\u4ef6\u76f8\u5173\u7684\u6bcf\u4e00\u6b21diff<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log -p <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u8fc7\u53bb5\u6b21\u63d0\u4ea4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git log -5 --pretty --oneline\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6240\u6709\u63d0\u4ea4\u8fc7\u7684\u7528\u6237\uff0c\u6309\u63d0\u4ea4\u6b21\u6570\u6392\u5e8f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git shortlog -sn\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6307\u5b9a\u6587\u4ef6\u662f\u4ec0\u4e48\u4eba\u5728\u4ec0\u4e48\u65f6\u95f4\u4fee\u6539\u8fc7<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git blame <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6682\u5b58\u533a\u548c\u5de5\u4f5c\u533a\u7684\u5dee\u5f02<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git diff\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6682\u5b58\u533a\u548c\u4e0a\u4e00\u4e2acommit\u7684\u5dee\u5f02<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git diff --cached <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u5de5\u4f5c\u533a\u4e0e\u5f53\u524d\u5206\u652f\u6700\u65b0commit\u4e4b\u95f4\u7684\u5dee\u5f02<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git diff HEAD\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u4e24\u6b21\u63d0\u4ea4\u4e4b\u95f4\u7684\u5dee\u5f02<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git diff <span class=\"o\">[<\/span>first-branch<span class=\"o\">]<\/span>...<span class=\"o\">[<\/span>second-branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u4eca\u5929\u4f60\u5199\u4e86\u591a\u5c11\u884c\u4ee3\u7801<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git diff --shortstat <span class=\"s2\">&#34;@{0 day ago}&#34;<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u6b21\u63d0\u4ea4\u7684\u5143\u6570\u636e\u548c\u5185\u5bb9\u53d8\u5316<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u6b21\u63d0\u4ea4\u53d1\u751f\u53d8\u5316\u7684\u6587\u4ef6<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show --name-only <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u6b21\u63d0\u4ea4\u65f6\uff0c\u67d0\u4e2a\u6587\u4ef6\u7684\u5185\u5bb9<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git show <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>:<span class=\"o\">[<\/span>filename<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u5f53\u524d\u5206\u652f\u7684\u6700\u8fd1\u51e0\u6b21\u63d0\u4ea4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reflog\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"8\">\n<li><strong>\u8fdc\u7a0b\u540c\u6b65<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0b\u8f7d\u8fdc\u7a0b\u4ed3\u5e93\u7684\u6240\u6709\u53d8\u52a8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git fetch <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u6240\u6709\u8fdc\u7a0b\u4ed3\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote -v\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u663e\u793a\u67d0\u4e2a\u8fdc\u7a0b\u4ed3\u5e93\u7684\u4fe1\u606f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote show <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u589e\u52a0\u4e00\u4e2a\u65b0\u7684\u8fdc\u7a0b\u4ed3\u5e93\uff0c\u5e76\u547d\u540d<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git remote add <span class=\"o\">[<\/span>shortname<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>url<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u53d6\u56de\u8fdc\u7a0b\u4ed3\u5e93\u7684\u53d8\u5316\uff0c\u5e76\u4e0e\u672c\u5730\u5206\u652f\u5408\u5e76<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git pull <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u4e0a\u4f20\u672c\u5730\u6307\u5b9a\u5206\u652f\u5230\u8fdc\u7a0b\u4ed3\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>branch<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5f3a\u884c\u63a8\u9001\u5f53\u524d\u5206\u652f\u5230\u8fdc\u7a0b\u4ed3\u5e93\uff0c\u5373\u4f7f\u6709\u51b2\u7a81<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> --force\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u63a8\u9001\u6240\u6709\u5206\u652f\u5230\u8fdc\u7a0b\u4ed3\u5e93<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git push <span class=\"o\">[<\/span>remote<span class=\"o\">]<\/span> --all\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"9\">\n<li><strong>\u64a4\u9500<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6062\u590d\u6682\u5b58\u533a\u7684\u6307\u5b9a\u6587\u4ef6\u5230\u5de5\u4f5c\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6062\u590d\u67d0\u4e2acommit\u7684\u6307\u5b9a\u6587\u4ef6\u5230\u6682\u5b58\u533a\u548c\u5de5\u4f5c\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span> <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6062\u590d\u6682\u5b58\u533a\u7684\u6240\u6709\u6587\u4ef6\u5230\u5de5\u4f5c\u533a<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git checkout .\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u7f6e\u6682\u5b58\u533a\u7684\u6307\u5b9a\u6587\u4ef6\uff0c\u4e0e\u4e0a\u4e00\u6b21commit\u4fdd\u6301\u4e00\u81f4\uff0c\u4f46\u5de5\u4f5c\u533a\u4e0d\u53d8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset <span class=\"o\">[<\/span>file<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u7f6e\u6682\u5b58\u533a\u4e0e\u5de5\u4f5c\u533a\uff0c\u4e0e\u4e0a\u4e00\u6b21commit\u4fdd\u6301\u4e00\u81f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset --hard\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u7f6e\u5f53\u524d\u5206\u652f\u7684\u6307\u9488\u4e3a\u6307\u5b9acommit\uff0c\u540c\u65f6\u91cd\u7f6e\u6682\u5b58\u533a\uff0c\u4f46\u5de5\u4f5c\u533a\u4e0d\u53d8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u7f6e\u5f53\u524d\u5206\u652f\u7684HEAD\u4e3a\u6307\u5b9acommit\uff0c\u540c\u65f6\u91cd\u7f6e\u6682\u5b58\u533a\u548c\u5de5\u4f5c\u533a\uff0c\u4e0e\u6307\u5b9acommit\u4e00\u81f4<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset --hard <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u91cd\u7f6e\u5f53\u524dHEAD\u4e3a\u6307\u5b9acommit\uff0c\u4f46\u4fdd\u6301\u6682\u5b58\u533a\u548c\u5de5\u4f5c\u533a\u4e0d\u53d8<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git reset --keep <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u65b0\u5efa\u4e00\u4e2acommit\uff0c\u7528\u6765\u64a4\u9500\u6307\u5b9acommit<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u540e\u8005\u7684\u6240\u6709\u53d8\u5316\u90fd\u5c06\u88ab\u524d\u8005\u62b5\u6d88\uff0c\u5e76\u4e14\u5e94\u7528\u5230\u5f53\u524d\u5206\u652f<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git revert <span class=\"o\">[<\/span>commit<span class=\"o\">]<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6682\u65f6\u5c06\u672a\u63d0\u4ea4\u7684\u53d8\u5316\u79fb\u9664\uff0c\u7a0d\u540e\u518d\u79fb\u5165<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git stash\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git stash pop\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"10\">\n<li><strong>\u5176\u4ed6<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u751f\u6210\u4e00\u4e2a\u53ef\u4f9b\u53d1\u5e03\u7684\u538b\u7f29\u5305<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">$ git archive\n<\/span><\/span><\/code><\/pre><\/div><p>\u53c2\u8003\uff1a<a href=\"https:\/\/www.ruanyifeng.com\/blog\/2015\/12\/git-cheat-sheet.html\">https:\/\/www.ruanyifeng.com\/blog\/2015\/12\/git-cheat-sheet.html<\/a><\/p>"},{"title":"GMP \u6a21\u578b","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/gmp-%E6%A8%A1%E5%9E%8B\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/gmp-%E6%A8%A1%E5%9E%8B\/","description":"<h2 id=\"gmp-\u6a21\u578b\">GMP \u6a21\u578b<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/gmp.png\" alt=\"img\"><\/p>\n<ul>\n<li>G\uff1aGoroutine<\/li>\n<li>M\uff1a\u5de5\u4f5c\u7ebf\u7a0b(OS thread)\u4e5f\u88ab\u79f0\u4e3a Machine\u3002<\/li>\n<li>P\uff1aGoroutine \u8c03\u5ea6\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7 GOMAXPROCS \u8fdb\u884c\u4fee\u6539\u3002<\/li>\n<\/ul>\n<h2 id=\"\u8c03\u5ea6\u6d41\u7a0b\">\u8c03\u5ea6\u6d41\u7a0b<\/h2>\n<ol>\n<li>\u521b\u5efa Goroutine\n<ul>\n<li>\u5f53\u901a\u8fc7 go func() \u521b\u5efa\u65b0\u7684 Goroutine \u65f6\uff0cG \u4f1a\u9996\u5148\u88ab\u52a0\u5165\u5230\u4e0e\u5f53\u524d P \u5173\u8054\u7684\u672c\u5730\u961f\u5217\u4e2d\u3002<\/li>\n<li>\u5982\u679c P \u7684\u672c\u5730\u961f\u5217\u5df2\u6ee1\uff08\u8d85\u8fc7 256 \u4e2a G\uff09\uff0c\u5219\u65b0\u7684 G \u4f1a\u88ab\u653e\u5165\u5168\u5c40\u961f\u5217\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u8c03\u5ea6\u4e0e\u6267\u884c\n<ul>\n<li>\u6bcf\u4e2a M \u4e0e\u4e00\u4e2a P \u7ed1\u5b9a\uff0cM \u4ece P \u7684\u672c\u5730\u961f\u5217\u4e2d\u83b7\u53d6\u4e00\u4e2a G \u6765\u6267\u884c\u3002<\/li>\n<li>\u5982\u679c P \u7684\u672c\u5730\u961f\u5217\u4e3a\u7a7a\uff0cM \u4f1a\u5c1d\u8bd5\u4ece\u5168\u5c40\u961f\u5217\u6216\u5176\u4ed6 P \u7684\u672c\u5730\u961f\u5217\u4e2d\u5077\u53d6\uff08work stealing\uff09\u4efb\u52a1\u6267\u884c\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u7cfb\u7edf\u8c03\u7528\u4e0e\u963b\u585e\n<ul>\n<li>\u5f53 G \u6267\u884c\u8fc7\u7a0b\u4e2d\u53d1\u751f\u963b\u585e\u6216\u7cfb\u7edf\u8c03\u7528\uff0cM \u4e5f\u4f1a\u88ab\u963b\u585e\u3002\u8fd9\u65f6\uff0cP \u4f1a\u89e3\u7ed1\u5f53\u524d\u7684 M\uff0c\u5e76\u5c1d\u8bd5\u5bfb\u627e\u6216\u521b\u5efa\u65b0\u7684 M \u6765\u7ee7\u7eed\u6267\u884c\u5176\u4ed6 G\u3002<\/li>\n<li>\u963b\u585e\u7ed3\u675f\u540e\uff0c\u539f\u6765\u7684 M \u4f1a\u5c1d\u8bd5\u91cd\u65b0\u7ed1\u5b9a\u4e00\u4e2a P \u7ee7\u7eed\u6267\u884c\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"\u77e5\u8bc6\u70b9\">\u77e5\u8bc6\u70b9<\/h2>\n<ul>\n<li>\u4e00\u4e2a P \u5bf9\u5e94\u4e00\u4e2a M\u3002(\u4f46P\u548cM\u7684\u6570\u91cf\u4e0d\u76f8\u5173)<\/li>\n<li>\u6bcf\u4e2a P \u90fd\u6709\u4e00\u4e2a\u672c\u5730\u8fd0\u884c\u961f\u5217\uff0c\u91cc\u9762\u5b58\u50a8\u7740\u5373\u5c06\u88ab\u6267\u884c\u7684 G\u3002<\/li>\n<li>\u5168\u5c40\u961f\u5217\u6709\u9501\uff0c\u672c\u5730\u961f\u5217\u6ca1\u6709\u9501\u3002<\/li>\n<li>G \u4f1a\u5173\u8054\u67d0\u4e2a P\uff0c\u5982\u679c\u6ca1\u6709 P\uff0c\u4f1a\u65b0\u5efa\u4e00\u4e2a P\u3002<\/li>\n<li>G \u4f18\u5148\u653e\u5173\u8054\u7684 P \u7684\u672c\u5730\u961f\u5217\uff0c\u5982\u679c\u5173\u8054\u7684 P \u7684\u672c\u5730\u961f\u5217\u6ee1\u4e86\uff0c\u4e0d\u4f1a\u4f18\u5148\u653e\u5230\u5176\u4ed6 P \u7684\u672c\u5730\u961f\u5217\uff0c\u800c\u662f\u4f1a\u5c06\u672c\u5730\u961f\u5217\u4e2d<strong>\u4e00\u534a<\/strong>\u7684 G \u79fb\u52a8\u5230\u5168\u5c40\u961f\u5217\uff0c\u7136\u540e\u628a\u65b0\u521b\u5efa\u7684 G \u653e\u5165\u672c\u5730\u961f\u5217\u3002<\/li>\n<li>P \u7684\u672c\u5730\u961f\u5217 G \u6267\u884c\u5b8c\u540e\uff0c\u4f1a\u53bb\u5168\u5c40\u961f\u5217\u83b7\u53d6\u65b0\u7684 G\u3002<\/li>\n<li>P \u7684\u672c\u5730\u961f\u5217 G \u6267\u884c\u5b8c\u540e\uff0c\u5168\u5c40\u961f\u5217\u4e5f\u6ca1\u6709\u4e86\uff0c\u5c31\u4f1a work-stealing\u3002<\/li>\n<li>\u5168\u5c40\u961f\u5217\u4e2d G \u548c\u4e00\u4e2a\u65b0 G\uff0c\u65b0 G \u4f1a\u4f18\u5148\u653e\u5165\u672c\u5730\u961f\u5217\u3002\uff08\u5168\u5c40\u961f\u5217\u4f1a\u6709\u9965\u997f\u73b0\u8c61\uff0c\u4f46\u51cf\u5c11\u4e86\u9501\u7ade\u4e89\uff09<\/li>\n<li>\u6bcf\u8c03\u5ea6 61 \u6b21\uff0cM \u5c31\u4f1a\u5c1d\u8bd5\u4ece\u5168\u5c40\u961f\u5217\u4e2d\u83b7\u53d6\u4e00\u4e2a G\uff0c\u5373\u4f7f\u672c\u5730\u961f\u5217\u8fd8\u6709\u4efb\u52a1\u3002<\/li>\n<\/ul>\n<h2 id=\"work-stealing\">work-stealing<\/h2>\n<p>P \u7684\u672c\u5730\u961f\u5217 G \u6267\u884c\u5b8c\u540e\uff0c\u5168\u5c40\u961f\u5217\u4e5f\u6ca1\u6709\u4e86\u3002\u5c31\u4ece\u9694\u58c1\u7684\u672c\u5730\u961f\u5217\u5077<strong>\u4e00\u534a<\/strong>\u7684 G\u3002<\/p>"},{"title":"go GC \u4e09\u8272\u6807\u8bb0","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-gc-%E4%B8%89%E8%89%B2%E6%A0%87%E8%AE%B0\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-gc-%E4%B8%89%E8%89%B2%E6%A0%87%E8%AE%B0\/","description":"<h2 id=\"\u4e09\u8272\u6807\u8bb0\u6cd5\">\u4e09\u8272\u6807\u8bb0\u6cd5<\/h2>\n<ul>\n<li>\u767d\u8272\uff1a\u5c1a\u672a\u88ab\u8ffd\u8e2a\u3002<\/li>\n<li>\u7070\u8272\uff1a\u5df2\u88ab\u8ffd\u8e2a\uff0c\u4f46\u5176\u5b50\u8282\u70b9\u8fd8\u672a\u88ab\u63a2\u7d22\u3002<\/li>\n<li>\u9ed1\u8272\uff1a\u5df2\u88ab\u5b8c\u5168\u63a2\u7d22\u3002\uff08\u6d3b\u8dc3\uff09<\/li>\n<\/ul>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/gc1.png\" alt=\"img\">\n<img src=\"https:\/\/hch1212.github.io\/other\/gc2.png\" alt=\"img\">\n<img src=\"https:\/\/hch1212.github.io\/other\/gc3.png\" alt=\"img\">\n<img src=\"https:\/\/hch1212.github.io\/other\/gc4.png\" alt=\"img\">\n<img src=\"https:\/\/hch1212.github.io\/other\/gc5.png\" alt=\"img\"><\/p>\n<h2 id=\"\u5f3a\u4e09\u8272\u4e0d\u53d8\u5f0f\">\u5f3a\u4e09\u8272\u4e0d\u53d8\u5f0f<\/h2>\n<p>\u4e0d\u5b58\u5728\u9ed1\u8272\u5bf9\u8c61\u5f15\u7528\u767d\u8272\u5bf9\u8c61\u3002<\/p>\n<h2 id=\"\u5f31\u4e09\u8272\u4e0d\u53d8\u5f0f\">\u5f31\u4e09\u8272\u4e0d\u53d8\u5f0f<\/h2>\n<p>\u6240\u6709\u88ab\u9ed1\u8272\u5bf9\u8c61\u5f15\u7528\u7684\u767d\u8272\u5bf9\u8c61\u90fd\u5fc5\u987b\u6709\u4e0a\u6e38\u7684\u7070\u8272\u5bf9\u8c61\u3002<\/p>\n<ul>\n<li>\u5f3a\u5f31\u4e09\u8272\u4e0d\u53d8\u5f0f\uff1a\u89e3\u51b3\u6f0f\u6807\u95ee\u9898\uff08\u9ed1\u8272\u5bf9\u8c61\u5f15\u7528\u767d\u8272\u5bf9\u8c61\uff09\u3002<\/li>\n<\/ul>\n<h2 id=\"\u5199\u5c4f\u969c\">\u5199\u5c4f\u969c<\/h2>\n<p>\u5199\u5c4f\u969c\uff08write barrier\uff09\u662f\u4e00\u79cd\u6280\u672f\uff0c\u7528\u4e8e\u89e3\u51b3 GC \u6807\u8bb0\u9636\u6bb5 \u5373\u4f7f\u5bf9\u8c61\u53d8\u5316\uff0c\u4e5f\u80fd\u6ee1\u8db3\u5f3a\u5f31\u4e09\u8272\u4e0d\u53d8\u5f0f\u3002<\/p>\n<ol>\n<li>\n<p>\u63d2\u5165\u5199\u5c4f\u969c\uff1a\n\u5e76\u53d1\u6807\u8bb0\u9636\u6bb5\uff0c\u5f53\u4e00\u4e2a\u9ed1\u8272\u5bf9\u8c61<strong>\u65b0<\/strong>\u6307\u5411\u4e00\u4e2a\u767d\u8272\u5bf9\u8c61\u65f6\uff0c\u5c06\u767d\u8272\u5bf9\u8c61\u6807\u8bb0\u4e3a\u7070\u8272\u3002<\/p>\n<\/li>\n<li>\n<p>\u5220\u9664\u5199\u5c4f\u969c\uff1a\n\u5e76\u53d1\u6807\u8bb0\u9636\u6bb5\uff0c\u5f53\u4e00\u4e2a\u7070\u8272\u5bf9\u8c61<strong>\u5220\u9664<\/strong>\u6307\u5411\u4e00\u4e2a\u767d\u8272\u5bf9\u8c61\u7684\u6307\u9488\u65f6\uff0c\u5c06\u767d\u8272\u5bf9\u8c61\u6807\u8bb0\u4e3a\u7070\u8272\u3002<\/p>\n<\/li>\n<li>\n<p>\u6df7\u5408\u5199\u5c4f\u969c\uff1a\n\u63d2\u5165\u5199\u5c4f\u969c + \u5220\u9664\u5199\u5c4f\u969c\u3002<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"\u6ce8\u610f\">\u6ce8\u610f<\/h2>\n<ul>\n<li><strong>\u6808\u533a\u6ca1\u6709\u5199\u5c4f\u969c<\/strong><\/li>\n<li>\u6808\u533a\u7684\u9ed1\u8272\u5bf9\u8c61\u65b0\u589e\u5f15\u7528\u767d\u8272\u5bf9\u8c61\uff0c\u76f4\u63a5\u6807\u8bb0\u4e3a\u9ed1\u8272\u3002\uff08\u5220\u9664\u65f6\u4e0d\u53d8\uff0c\u7b49\u4e0b\u4e00\u6b21 GC\uff09<\/li>\n<\/ul>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/www.bilibili.com\/video\/BV1SLtVe7EDR?vd_source=1fc15dfc7872eca10bc43b8ee8d73958\">https:\/\/www.bilibili.com\/video\/BV1SLtVe7EDR?vd_source=1fc15dfc7872eca10bc43b8ee8d73958<\/a><\/p>"},{"title":"go \u5b9e\u73b0\u5341\u5927\u7ecf\u5178\u6392\u5e8f\u7b97\u6cd5","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%AE%9E%E7%8E%B0%E5%8D%81%E5%A4%A7%E7%BB%8F%E5%85%B8%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%AE%9E%E7%8E%B0%E5%8D%81%E5%A4%A7%E7%BB%8F%E5%85%B8%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95\/","description":"<h2 id=\"1\u5192\u6ce1\u6392\u5e8f-bubble-sort\">1.\u5192\u6ce1\u6392\u5e8f (Bubble Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/bubbleSort.gif\" style=\"max-width: 800px;\"\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">BubbleSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">BubbleSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6700\u574f\u60c5\u51b5\uff1aO(n\u00b2)\uff0c\u5f53\u5217\u8868\u662f\u9006\u5e8f\u65f6\u3002<\/li>\n<li>\u6700\u597d\u60c5\u51b5\uff1aO(n)\uff0c\u5f53\u5217\u8868\u5df2\u7ecf\u6709\u5e8f\u65f6\u3002<\/li>\n<li>\u5e73\u5747\u60c5\u51b5\uff1aO(n\u00b2)\u3002<\/li>\n<\/ul>\n<h2 id=\"2\u9009\u62e9\u6392\u5e8f-selection-sort\">2.\u9009\u62e9\u6392\u5e8f (Selection Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/selectionSort.gif\" style=\"max-width: 800px;\"\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">SelectionSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">SelectionSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">minIndex<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">minIndex<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">minIndex<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">minIndex<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u907f\u514d\u4e0d\u5fc5\u8981\u7684\u4ea4\u6362<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">minIndex<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">minIndex<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6700\u574f\u60c5\u51b5\uff1aO(n\u00b2)\uff0c\u65e0\u8bba\u8f93\u5165\u6570\u636e\u662f\u5426\u6709\u5e8f\uff0c\u90fd\u9700\u8981\u8fdb\u884c n(n-1)\/2 \u6b21\u6bd4\u8f83\u3002<\/li>\n<li>\u6700\u597d\u60c5\u51b5\uff1aO(n\u00b2)\uff0c\u5373\u4f7f\u5217\u8868\u5df2\u7ecf\u6709\u5e8f\uff0c\u4ecd\u9700\u8fdb\u884c\u76f8\u540c\u6570\u91cf\u7684\u6bd4\u8f83\u3002<\/li>\n<li>\u5e73\u5747\u60c5\u51b5\uff1aO(n\u00b2)\u3002<\/li>\n<\/ul>\n<h2 id=\"3\u63d2\u5165\u6392\u5e8f-insertion-sort\">3.\u63d2\u5165\u6392\u5e8f (Insertion Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/insertionSort.gif\" style=\"max-width: 800px;\"\/>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">InsertionSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">InsertionSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">);<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">current<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">current<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6bd4\u73b0\u5728\u5927\u7684\u5143\u7d20\u4f9d\u6b21\u540e\u79fb<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">j<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">current<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6700\u574f\u60c5\u51b5\uff1aO(n\u00b2)\uff0c\u5f53\u5217\u8868\u662f\u9006\u5e8f\u65f6\uff0c\u6bcf\u6b21\u63d2\u5165\u90fd\u9700\u8981\u79fb\u52a8\u6240\u6709\u5df2\u6392\u5e8f\u5143\u7d20\u3002<\/li>\n<li>\u6700\u597d\u60c5\u51b5\uff1aO(n)\uff0c\u5f53\u5217\u8868\u5df2\u7ecf\u6709\u5e8f\u65f6\uff0c\u53ea\u9700\u904d\u5386\u4e00\u6b21\u5217\u8868\u3002<\/li>\n<li>\u5e73\u5747\u60c5\u51b5\uff1aO(n\u00b2)\u3002<\/li>\n<\/ul>\n<h2 id=\"4\u5e0c\u5c14\u6392\u5e8f-shell-sort\">4.\u5e0c\u5c14\u6392\u5e8f (Shell Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/Sorting_shellsort_anim.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u9009\u62e9\u589e\u91cf\u5e8f\u5217\uff1a\u9009\u62e9\u4e00\u4e2a\u589e\u91cf\u5e8f\u5217\uff08gap sequence\uff09\uff0c\u7528\u4e8e\u5c06\u5217\u8868\u5206\u6210\u82e5\u5e72\u5b50\u5217\u8868\u3002\u5e38\u89c1\u7684\u589e\u91cf\u5e8f\u5217\u6709\u5e0c\u5c14\u589e\u91cf\uff08n\/2, n\/4, &hellip;, 1\uff09\u7b49\u3002<\/li>\n<li>\u5206\u7ec4\u63d2\u5165\u6392\u5e8f\uff1a\u6309\u7167\u589e\u91cf\u5e8f\u5217\u5c06\u5217\u8868\u5206\u6210\u82e5\u5e72\u5b50\u5217\u8868\uff0c\u5bf9\u6bcf\u4e2a\u5b50\u5217\u8868\u8fdb\u884c\u63d2\u5165\u6392\u5e8f\u3002<\/li>\n<li>\u7f29\u5c0f\u589e\u91cf\uff1a\u9010\u6b65\u7f29\u5c0f\u589e\u91cf\uff0c\u91cd\u590d\u4e0a\u8ff0\u5206\u7ec4\u548c\u6392\u5e8f\u8fc7\u7a0b\uff0c\u76f4\u5230\u589e\u91cf\u4e3a 1\u3002<\/li>\n<li>\u6700\u7ec8\u6392\u5e8f\uff1a\u5f53\u589e\u91cf\u4e3a 1 \u65f6\uff0c\u5bf9\u6574\u4e2a\u5217\u8868\u8fdb\u884c\u4e00\u6b21\u63d2\u5165\u6392\u5e8f\uff0c\u5b8c\u6210\u6392\u5e8f\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">ShellSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">ShellSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">a<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u4f7f\u7528Knuth\u589e\u91cf\u5e8f\u5217 h = 3*h + 1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">\/<\/span><span class=\"mi\">3<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">3<\/span><span class=\"o\">*<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ 1, 4, 13, 40, 121, ...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"c1\">\/\/ \u4ee5\u95f4\u9694 h \u5bf9\u6570\u7ec4\u8fdb\u884c\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"c1\">\/\/ \u5bf9\u6bcf\u4e2a\u95f4\u9694h\u7684\u5b50\u5e8f\u5217\u8fdb\u884c\u63d2\u5165\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"nx\">h<\/span><span class=\"p\">];<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">-=<\/span><span class=\"w\"> <\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t\t<\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"nx\">h<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"o\">-<\/span><span class=\"nx\">h<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">a<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">h<\/span><span class=\"w\"> <\/span><span class=\"o\">\/=<\/span><span class=\"w\"> <\/span><span class=\"mi\">3<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u51cf\u5c0f\u95f4\u9694<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6700\u574f\u60c5\u51b5\uff1aO(n\u00b2)\uff0c\u5f53\u589e\u91cf\u5e8f\u5217\u9009\u62e9\u4e0d\u5f53\u65f6\u3002<\/li>\n<li>\u6700\u597d\u60c5\u51b5\uff1aO(n log n)\uff0c\u5f53\u589e\u91cf\u5e8f\u5217\u9009\u62e9\u5408\u9002\u65f6\u3002<\/li>\n<li>\u5e73\u5747\u60c5\u51b5\uff1aO(n log n) \u5230 O(n\u00b2) \u4e4b\u95f4\u3002<\/li>\n<\/ul>\n<h2 id=\"5\u5f52\u5e76\u6392\u5e8f-merge-sort\">5.\u5f52\u5e76\u6392\u5e8f (Merge Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/mergeSort.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u7533\u8bf7\u7a7a\u95f4\uff0c\u4f7f\u5176\u5927\u5c0f\u4e3a\u4e24\u4e2a\u5df2\u7ecf\u6392\u5e8f\u5e8f\u5217\u4e4b\u548c\uff0c\u8be5\u7a7a\u95f4\u7528\u6765\u5b58\u653e\u5408\u5e76\u540e\u7684\u5e8f\u5217\uff1b<\/li>\n<li>\u8bbe\u5b9a\u4e24\u4e2a\u6307\u9488\uff0c\u6700\u521d\u4f4d\u7f6e\u5206\u522b\u4e3a\u4e24\u4e2a\u5df2\u7ecf\u6392\u5e8f\u5e8f\u5217\u7684\u8d77\u59cb\u4f4d\u7f6e\uff1b<\/li>\n<li>\u6bd4\u8f83\u4e24\u4e2a\u6307\u9488\u6240\u6307\u5411\u7684\u5143\u7d20\uff0c\u9009\u62e9\u76f8\u5bf9\u5c0f\u7684\u5143\u7d20\u653e\u5165\u5230\u5408\u5e76\u7a7a\u95f4\uff0c\u5e76\u79fb\u52a8\u6307\u9488\u5230\u4e0b\u4e00\u4f4d\u7f6e\uff1b<\/li>\n<li>\u91cd\u590d\u6b65\u9aa4 3 \u76f4\u5230\u67d0\u4e00\u6307\u9488\u8fbe\u5230\u5e8f\u5217\u5c3e\uff1b<\/li>\n<li>\u5c06\u53e6\u4e00\u5e8f\u5217\u5269\u4e0b\u7684\u6240\u6709\u5143\u7d20\u76f4\u63a5\u590d\u5236\u5230\u5408\u5e76\u5e8f\u5217\u5c3e\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">result<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">MergeSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">result<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ MergeSort \u5f52\u5e76\u6392\u5e8f\u4e3b\u51fd\u6570\uff0c\u8fd4\u56de\u65b0\u7684\u6709\u5e8f\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">MergeSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u57fa\u672c\u60c5\u51b5\uff1a\u6570\u7ec4\u957f\u5ea6\u4e3a0\u62161\u65f6\u76f4\u63a5\u8fd4\u56de<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5206\u5272\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">mid<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">MergeSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[:<\/span><span class=\"nx\">mid<\/span><span class=\"p\">])<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9012\u5f52\u6392\u5e8f\u5de6\u534a\u90e8\u5206<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">MergeSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">mid<\/span><span class=\"p\">:])<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9012\u5f52\u6392\u5e8f\u53f3\u534a\u90e8\u5206<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5408\u5e76\u5df2\u6392\u5e8f\u7684\u4e24\u90e8\u5206<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ merge \u5408\u5e76\u4e24\u4e2a\u6709\u5e8f\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">merge<\/span><span class=\"p\">(<\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">merged<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"o\">+<\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6bd4\u8f83\u4e24\u4e2a\u6570\u7ec4\u5143\u7d20\uff0c\u6309\u987a\u5e8f\u6dfb\u52a0\u5230merged<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">left<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">j<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">merged<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">merged<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">merged<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">merged<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">])<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">j<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u6dfb\u52a0\u5269\u4f59\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">merged<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">merged<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">:]<\/span><span class=\"o\">...<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">merged<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">merged<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">[<\/span><span class=\"nx\">j<\/span><span class=\"p\">:]<\/span><span class=\"o\">...<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">merged<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u5206\u89e3\uff1a\u6bcf\u6b21\u5c06\u5217\u8868\u5206\u6210\u4e24\u534a\uff0c\u9700\u8981 O(log n) \u5c42\u9012\u5f52\u3002<\/li>\n<li>\u5408\u5e76\uff1a\u6bcf\u5c42\u9012\u5f52\u9700\u8981 O(n) \u7684\u65f6\u95f4\u6765\u5408\u5e76\u5b50\u5217\u8868\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n log n)\u3002<\/li>\n<\/ul>\n<h2 id=\"6\u5feb\u901f\u6392\u5e8f-quick-sort\">6.\u5feb\u901f\u6392\u5e8f (Quick Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/quickSort.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u9009\u62e9\u57fa\u51c6\u5143\u7d20\uff1a\u4ece\u5217\u8868\u4e2d\u9009\u62e9\u4e00\u4e2a\u5143\u7d20\u4f5c\u4e3a\u57fa\u51c6\uff08pivot\uff09\u3002\u9009\u62e9\u65b9\u5f0f\u53ef\u4ee5\u662f\u7b2c\u4e00\u4e2a\u5143\u7d20\u3001\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u3001\u4e2d\u95f4\u5143\u7d20\u6216\u968f\u673a\u5143\u7d20\u3002<\/li>\n<li>\u5206\u533a\uff1a\u5c06\u5217\u8868\u91cd\u65b0\u6392\u5217\uff0c\u4f7f\u5f97\u6240\u6709\u5c0f\u4e8e\u57fa\u51c6\u5143\u7d20\u7684\u5143\u7d20\u90fd\u5728\u57fa\u51c6\u7684\u5de6\u4fa7\uff0c\u6240\u6709\u5927\u4e8e\u57fa\u51c6\u5143\u7d20\u7684\u5143\u7d20\u90fd\u5728\u57fa\u51c6\u7684\u53f3\u4fa7\u3002\u57fa\u51c6\u5143\u7d20\u7684\u4f4d\u7f6e\u5728\u5206\u533a\u5b8c\u6210\u540e\u786e\u5b9a\u3002<\/li>\n<li>\u9012\u5f52\u6392\u5e8f\uff1a\u5bf9\u57fa\u51c6\u5143\u7d20\u5de6\u4fa7\u548c\u53f3\u4fa7\u7684\u5b50\u5217\u8868\u5206\u522b\u9012\u5f52\u5730\u8fdb\u884c\u5feb\u901f\u6392\u5e8f\u3002<\/li>\n<li>\u5408\u5e76\uff1a\u7531\u4e8e\u5206\u533a\u64cd\u4f5c\u662f\u539f\u5730\u8fdb\u884c\u7684\uff0c\u9012\u5f52\u7ed3\u675f\u540e\u6574\u4e2a\u5217\u8868\u5df2\u7ecf\u6709\u5e8f\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;math\/rand&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;time&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSortPlus<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5feb\u6392<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">QuickSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u968f\u673a\u9009\u62e9\u57fa\u51c6\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Seed<\/span><span class=\"p\">(<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Now<\/span><span class=\"p\">().<\/span><span class=\"nf\">UnixNano<\/span><span class=\"p\">())<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">index<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Intn<\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">pivot<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5c06\u57fa\u51c6\u70b9\u4ea4\u6362\u5230\u6700\u53f3\u4fa7\uff0c\u7b80\u5316\u5206\u533a\u903b\u8f91<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8fb9\u754c\uff0c\u4e00\u5f00\u59cb\u5728\u5de6\u8fb9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u73b0\u5728right\u4f4d\u7f6e\u662f\u57fa\u51c6\u70b9\uff0c\u4e0d\u9700\u8981\u5904\u7406<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">pivot<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5c06\u57fa\u51c6\u70b9\u653e\u5230\u6b63\u786e\u4f4d\u7f6e<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4e09\u8def\u5feb\u6392<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">QuickSortPlus<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u968f\u673a\u9009\u62e9\u57fa\u51c6\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Seed<\/span><span class=\"p\">(<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Now<\/span><span class=\"p\">().<\/span><span class=\"nf\">UnixNano<\/span><span class=\"p\">())<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">index<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Intn<\/span><span class=\"p\">(<\/span><span class=\"nx\">right<\/span><span class=\"o\">-<\/span><span class=\"nx\">left<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">pivot<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp2<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e24\u4e2a\u8fb9\u754c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp2<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">pivot<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">pivot<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp1<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp2<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">temp2<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">temp2<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSortPlus<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp1<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">QuickSortPlus<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">temp2<\/span><span class=\"o\">+<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u5206\u89e3\uff1a\u6bcf\u6b21\u5c06\u5217\u8868\u5206\u6210\u4e24\u534a\uff0c\u9700\u8981 O(log n) \u5c42\u9012\u5f52\u3002<\/li>\n<li>\u5408\u5e76\uff1a\u6bcf\u5c42\u9012\u5f52\u9700\u8981 O(n) \u7684\u65f6\u95f4\u6765\u5408\u5e76\u5b50\u5217\u8868\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n log n)\u3002<\/li>\n<\/ul>\n<h2 id=\"7\u5806\u6392\u5e8f-heap-sort\">7.\u5806\u6392\u5e8f (Heap Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/heapSort.gif\" style=\"max-width: 800px;\"\/>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/Sorting_heapsort_anim.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u521b\u5efa\u4e00\u4e2a\u5806 H[0\u2026\u2026n-1]\uff1b<\/li>\n<li>\u628a\u5806\u9996\uff08\u6700\u5927\u503c\uff09\u548c\u5806\u5c3e\u4e92\u6362\uff1b<\/li>\n<li>\u628a\u5806\u7684\u5c3a\u5bf8\u7f29\u5c0f 1\uff0c\u5e76\u8c03\u7528 shift_down(0)\uff0c\u76ee\u7684\u662f\u628a\u65b0\u7684\u6570\u7ec4\u9876\u7aef\u6570\u636e\u8c03\u6574\u5230\u76f8\u5e94\u4f4d\u7f6e\uff1b<\/li>\n<li>\u91cd\u590d\u6b65\u9aa4 2\uff0c\u76f4\u5230\u5806\u7684\u5c3a\u5bf8\u4e3a 1\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">HeapSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ HeapSort \u5806\u6392\u5e8f\u4e3b\u51fd\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">HeapSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6784\u5efa\u6700\u5927\u5806<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"o\">\/<\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">heapify<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e00\u4e2a\u4e2a\u4ea4\u6362\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c06\u5806\u9876\u5143\u7d20\uff08\u6700\u5927\u503c\uff09\u4e0e\u5f53\u524d\u672a\u6392\u5e8f\u90e8\u5206\u7684\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u4ea4\u6362<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">heapify<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u91cd\u65b0\u8c03\u6574\u5806\uff0c\u6392\u9664\u5df2\u6392\u5e8f\u7684\u5143\u7d20<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ heapify \u5c06\u4ee5i\u4e3a\u6839\u7684\u5b50\u6811\u8c03\u6574\u4e3a\u6700\u5927\u5806<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">heapify<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">largest<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u6839\u8282\u70b9\u4e3a\u6700\u5927\u503c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5de6\u5b50\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"o\">*<\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u53f3\u5b50\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5982\u679c\u5de6\u5b50\u8282\u70b9\u5927\u4e8e\u6839\u8282\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">left<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">largest<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">largest<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">left<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5982\u679c\u53f3\u5b50\u8282\u70b9\u5927\u4e8e\u5f53\u524d\u6700\u5927\u503c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;&amp;<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">right<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">largest<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">largest<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">right<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5982\u679c\u6700\u5927\u503c\u4e0d\u662f\u6839\u8282\u70b9\uff0c\u5219\u4ea4\u6362\u5e76\u7ee7\u7eed\u8c03\u6574\u5b50\u6811<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">largest<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">largest<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">largest<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">heapify<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">largest<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9012\u5f52\u8c03\u6574\u53d7\u5f71\u54cd\u7684\u5b50\u6811<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6784\u5efa\u6700\u5927\u5806\uff1aO(n)\u3002<\/li>\n<li>\u6bcf\u6b21\u8c03\u6574\u5806\uff1aO(log n)\uff0c\u603b\u5171\u9700\u8981\u8c03\u6574 n-1 \u6b21\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n log n)\u3002****<\/li>\n<\/ul>\n<h2 id=\"8\u8ba1\u6570\u6392\u5e8f-counting-sort\">8.\u8ba1\u6570\u6392\u5e8f (Counting Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/countingSort.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u7edf\u8ba1\u9891\u7387\uff1a\u904d\u5386\u5f85\u6392\u5e8f\u7684\u5217\u8868\uff0c\u7edf\u8ba1\u6bcf\u4e2a\u5143\u7d20\u51fa\u73b0\u7684\u6b21\u6570\uff0c\u5b58\u50a8\u5728\u4e00\u4e2a\u8ba1\u6570\u6570\u7ec4\u4e2d\u3002<\/li>\n<li>\u7d2f\u52a0\u9891\u7387\uff1a\u5c06\u8ba1\u6570\u6570\u7ec4\u4e2d\u7684\u503c\u7d2f\u52a0\uff0c\u5f97\u5230\u6bcf\u4e2a\u5143\u7d20\u5728\u6392\u5e8f\u540e\u5217\u8868\u4e2d\u7684\u6700\u540e\u4e00\u4e2a\u4f4d\u7f6e\u3002<\/li>\n<li>\u6784\u5efa\u6709\u5e8f\u5217\u8868\uff1a\u904d\u5386\u5f85\u6392\u5e8f\u7684\u5217\u8868\uff0c\u6839\u636e\u8ba1\u6570\u6570\u7ec4\u4e2d\u7684\u4f4d\u7f6e\u4fe1\u606f\uff0c\u5c06\u5143\u7d20\u653e\u5230\u6b63\u786e\u7684\u4f4d\u7f6e\u3002<\/li>\n<li>\u8f93\u51fa\u7ed3\u679c\uff1a\u5c06\u6392\u5e8f\u540e\u7684\u5217\u8868\u8f93\u51fa\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">CountingSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ CountingSort \u8ba1\u6570\u6392\u5e8f\u4e3b\u51fd\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">CountingSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u627e\u51fa\u6700\u5927\u503c\u548c\u6700\u5c0f\u503c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">min<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">min<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">min<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8ba1\u7b97\u8ba1\u6570\u6570\u7ec4\u7684\u957f\u5ea6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">countLen<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"nx\">min<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">countLen<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7edf\u8ba1\u6bcf\u4e2a\u5143\u7d20\u51fa\u73b0\u7684\u6b21\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">num<\/span><span class=\"o\">-<\/span><span class=\"nx\">min<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c06\u7edf\u8ba1\u7ed3\u679c\u653e\u56de\u539f\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">index<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">countLen<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">min<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">index<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u7edf\u8ba1\u9891\u7387\uff1aO(n)\uff0c\u904d\u5386\u5217\u8868\u4e00\u6b21\u3002<\/li>\n<li>\u7d2f\u52a0\u9891\u7387\uff1aO(k)\uff0c\u904d\u5386\u8ba1\u6570\u6570\u7ec4\u4e00\u6b21\u3002<\/li>\n<li>\u653e\u7f6e\u5143\u7d20\uff1aO(n)\uff0c\u904d\u5386\u5217\u8868\u4e00\u6b21\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n + k)\uff0c\u5176\u4e2d n \u662f\u5217\u8868\u957f\u5ea6\uff0ck \u662f\u6570\u636e\u7684\u8303\u56f4\u5927\u5c0f\u3002<\/li>\n<\/ul>\n<h2 id=\"9\u6876\u6392\u5e8f-bucket-sort\">9.\u6876\u6392\u5e8f (Bucket Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/Bucket_sort_1.svg_.png\" style=\"max-width: 800px;\"\/>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/Bucket_sort_2.svg_.png\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u521d\u59cb\u5316\u6876\uff1a\u6839\u636e\u6570\u636e\u7684\u8303\u56f4\u548c\u5206\u5e03\uff0c\u521b\u5efa\u82e5\u5e72\u4e2a\u6876\u3002<\/li>\n<li>\u5206\u914d\u5143\u7d20\uff1a\u904d\u5386\u5f85\u6392\u5e8f\u7684\u5217\u8868\uff0c\u5c06\u6bcf\u4e2a\u5143\u7d20\u5206\u914d\u5230\u5bf9\u5e94\u7684\u6876\u4e2d\u3002<\/li>\n<li>\u6392\u5e8f\u6bcf\u4e2a\u6876\uff1a\u5bf9\u6bcf\u4e2a\u6876\u4e2d\u7684\u5143\u7d20\u8fdb\u884c\u6392\u5e8f\uff08\u53ef\u4ee5\u4f7f\u7528\u63d2\u5165\u6392\u5e8f\u3001\u5feb\u901f\u6392\u5e8f\u7b49\uff09\u3002<\/li>\n<li>\u5408\u5e76\u6876\uff1a\u5c06\u6240\u6709\u6876\u4e2d\u7684\u5143\u7d20\u6309\u987a\u5e8f\u5408\u5e76\uff0c\u5f97\u5230\u6700\u7ec8\u6392\u5e8f\u7ed3\u679c\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;sort&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">float64<\/span><span class=\"p\">{<\/span><span class=\"mf\">0.42<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.32<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.33<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.52<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.37<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.47<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.51<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nf\">BucketSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [0.32 0.33 0.37 0.42 0.47 0.51 0.52]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ BucketSort \u6876\u6392\u5e8f\u4e3b\u51fd\u6570\uff08\u5904\u74060.0~1.0\u4e4b\u95f4\u7684\u6d6e\u70b9\u6570\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">BucketSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">float64<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521b\u5efa\u6876<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">buckets<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([][]<\/span><span class=\"kt\">float64<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5c06\u5143\u7d20\u5206\u914d\u5230\u6876\u4e2d<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">index<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">int<\/span><span class=\"p\">(<\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nb\">float64<\/span><span class=\"p\">(<\/span><span class=\"nx\">n<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u786e\u5b9a\u5143\u7d20\u6240\u5728\u7684\u6876<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">buckets<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"nx\">buckets<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">],<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5bf9\u6bcf\u4e2a\u6876\u5185\u7684\u5143\u7d20\u8fdb\u884c\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">bucket<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">buckets<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">sort<\/span><span class=\"p\">.<\/span><span class=\"nf\">Float64s<\/span><span class=\"p\">(<\/span><span class=\"nx\">bucket<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4f7f\u7528\u6807\u51c6\u5e93\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u5408\u5e76\u6240\u6709\u6876\u7684\u7ed3\u679c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">index<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">bucket<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">buckets<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">bucket<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">index<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t\t<\/span><span class=\"nx\">index<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u5206\u914d\u5143\u7d20\uff1aO(n)\uff0c\u904d\u5386\u5217\u8868\u4e00\u6b21\u3002<\/li>\n<li>\u6392\u5e8f\u6bcf\u4e2a\u6876\uff1a\u5047\u8bbe\u6bcf\u4e2a\u6876\u4e2d\u7684\u5143\u7d20\u6570\u91cf\u4e3a m\uff0c\u5219\u6392\u5e8f\u4e00\u4e2a\u6876\u7684\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(m log m)\u3002\u5982\u679c\u6876\u7684\u6570\u91cf\u4e3a k\uff0c\u5219\u603b\u65f6\u95f4\u590d\u6742\u5ea6\u4e3a O(k * m log m)\u3002<\/li>\n<li>\u5408\u5e76\u6876\uff1aO(n)\uff0c\u904d\u5386\u6240\u6709\u6876\u4e00\u6b21\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n + k * m log m)\uff0c\u5176\u4e2d n \u662f\u5217\u8868\u957f\u5ea6\uff0ck \u662f\u6876\u7684\u6570\u91cf\uff0cm \u662f\u6bcf\u4e2a\u6876\u7684\u5e73\u5747\u5143\u7d20\u6570\u91cf\u3002<\/li>\n<\/ul>\n<h2 id=\"10\u57fa\u6570\u6392\u5e8f-radix-sort\">10.\u57fa\u6570\u6392\u5e8f (Radix Sort)<\/h2>\n<img src=\"https:\/\/www.runoob.com\/wp-content\/uploads\/2019\/03\/radixSort.gif\" style=\"max-width: 800px;\"\/>\n<ol>\n<li>\u786e\u5b9a\u6700\u5927\u4f4d\u6570\uff1a\u627e\u5230\u5217\u8868\u4e2d\u6700\u5927\u6570\u5b57\u7684\u4f4d\u6570\uff0c\u786e\u5b9a\u9700\u8981\u6392\u5e8f\u7684\u8f6e\u6570\u3002<\/li>\n<li>\u6309\u4f4d\u6392\u5e8f\uff1a\u4ece\u6700\u4f4e\u4f4d\u5f00\u59cb\uff0c\u4f9d\u6b21\u5bf9\u6bcf\u4e00\u4f4d\u8fdb\u884c\u6392\u5e8f\uff08\u901a\u5e38\u4f7f\u7528\u8ba1\u6570\u6392\u5e8f\u6216\u6876\u6392\u5e8f\u4f5c\u4e3a\u5b50\u6392\u5e8f\u7b97\u6cd5\uff09\u3002<\/li>\n<li>\u5408\u5e76\u7ed3\u679c\uff1a\u6bcf\u4e00\u8f6e\u6392\u5e8f\u540e\uff0c\u66f4\u65b0\u5217\u8868\u7684\u987a\u5e8f\uff0c\u76f4\u5230\u6240\u6709\u4f4d\u6570\u6392\u5e8f\u5b8c\u6210\u3002<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">in<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">{<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">8<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">4<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">9<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">RadixSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">in<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa: [2 3 4 4 8 9]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ RadixSort \u57fa\u6570\u6392\u5e8f\u4e3b\u51fd\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">RadixSort<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u627e\u51fa\u6700\u5927\u503c\u4ee5\u786e\u5b9a\u4f4d\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">num<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4ece\u6700\u4f4e\u4f4d\uff08\u4e2a\u4f4d\uff09\u5230\u6700\u9ad8\u4f4d\u8fdb\u884c\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">max<\/span><span class=\"o\">\/<\/span><span class=\"nx\">exp<\/span><span class=\"w\"> <\/span><span class=\"p\">&gt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"w\"> <\/span><span class=\"o\">*=<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nf\">countingSortByDigit<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ countingSortByDigit \u6839\u636e\u6307\u5b9a\u4f4d\u4e0a\u7684\u6570\u5b57\u8fdb\u884c\u8ba1\u6570\u6392\u5e8f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">countingSortByDigit<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">output<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">([]<\/span><span class=\"kt\">int<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ 0-9 \u517110\u4e2a\u6570\u5b57<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7edf\u8ba1\u6bcf\u4e2a\u4f4d\u4e0a\u7684\u6570\u5b57\u51fa\u73b0\u7684\u6b21\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">digit<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">%<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">digit<\/span><span class=\"p\">]<\/span><span class=\"o\">++<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8ba1\u7b97\u7d2f\u79ef\u6b21\u6570<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"p\">&lt;<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">++<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">+=<\/span><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6784\u5efa\u6709\u5e8f\u8f93\u51fa\u6570\u7ec4\uff08\u4ece\u540e\u5411\u524d\u904d\u5386\u4ee5\u4fdd\u6301\u7a33\u5b9a\u6027\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">n<\/span><span class=\"w\"> <\/span><span class=\"o\">-<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"w\"> <\/span><span class=\"o\">&gt;=<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">;<\/span><span class=\"w\"> <\/span><span class=\"nx\">i<\/span><span class=\"o\">--<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">digit<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"o\">\/<\/span><span class=\"w\"> <\/span><span class=\"nx\">exp<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"o\">%<\/span><span class=\"w\"> <\/span><span class=\"mi\">10<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">output<\/span><span class=\"p\">[<\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">digit<\/span><span class=\"p\">]<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">arr<\/span><span class=\"p\">[<\/span><span class=\"nx\">i<\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">count<\/span><span class=\"p\">[<\/span><span class=\"nx\">digit<\/span><span class=\"p\">]<\/span><span class=\"o\">--<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c06\u6709\u5e8f\u7ed3\u679c\u590d\u5236\u56de\u539f\u6570\u7ec4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nb\">copy<\/span><span class=\"p\">(<\/span><span class=\"nx\">arr<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">output<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u6bcf\u4e00\u8f6e\u6392\u5e8f\uff1aO(n)\uff0c\u4f7f\u7528\u8ba1\u6570\u6392\u5e8f\u5bf9\u6bcf\u4e00\u4f4d\u8fdb\u884c\u6392\u5e8f\u3002<\/li>\n<li>\u603b\u8f6e\u6570\uff1ak \u8f6e\uff0c\u5176\u4e2d k \u662f\u6700\u5927\u6570\u5b57\u7684\u4f4d\u6570\u3002<\/li>\n<li>\u603b\u65f6\u95f4\u590d\u6742\u5ea6\uff1aO(n * k)\u3002<\/li>\n<\/ul>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/www.runoob.com\/w3cnote\/ten-sorting-algorithm.html\">https:\/\/www.runoob.com\/w3cnote\/ten-sorting-algorithm.html<\/a><\/p>"},{"title":"go \u5b9e\u73b0\u77ed\u94fe","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%AE%9E%E7%8E%B0%E7%9F%AD%E9%93%BE\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%AE%9E%E7%8E%B0%E7%9F%AD%E9%93%BE\/","description":"<h2 id=\"\u4e3a\u4ec0\u4e48\u8981\u77ed\u94fe\">\u4e3a\u4ec0\u4e48\u8981\u77ed\u94fe<\/h2>\n<ol>\n<li>\u9632\u6b62\u94fe\u63a5\u88ab\u6ee5\u7528<\/li>\n<li>\u9632\u6b62\u94fe\u63a5\u8fc7\u957f<\/li>\n<li>\u9632\u6b62\u94fe\u63a5\u6cc4\u9732<\/li>\n<\/ol>\n<h2 id=\"\u77ed\u94fe\u7684\u539f\u7406\">\u77ed\u94fe\u7684\u539f\u7406<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/shorturl.png\" alt=\"img\"><\/p>\n<h2 id=\"\u91cd\u5b9a\u5411\u7684\u533a\u522b\">\u91cd\u5b9a\u5411\u7684\u533a\u522b<\/h2>\n<ol>\n<li>301\uff1a\u6c38\u4e45\u91cd\u5b9a\u5411\uff0c\u6d4f\u89c8\u5668\u4f1a\u7f13\u5b58\u91cd\u5b9a\u5411\u540e\u7684\u7f51\u5740\uff0c\u4e0b\u6b21\u8bf7\u6c42\u65f6\u76f4\u63a5\u8bbf\u95ee\u7f13\u5b58\u7684\u7f51\u5740\u3002<\/li>\n<li>302\uff1a\u4e34\u65f6\u91cd\u5b9a\u5411\uff0c\u6bcf\u6b21\u53bb\u8bf7\u6c42\u77ed\u94fe\u90fd\u4f1a\u53bb\u8bf7\u6c42\u77ed\u7f51\u5740\u670d\u52a1\u5668\uff08\u9664\u975e\u54cd\u5e94\u4e2d\u7528 Cache-Control \u6216 Expired \u6697\u793a\u6d4f\u89c8\u5668\u8fdb\u884c\u7f13\u5b58\uff09\u3002<\/li>\n<\/ol>\n<h2 id=\"\u77ed\u94fe\u7684\u5b9e\u73b0\">\u77ed\u94fe\u7684\u5b9e\u73b0<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;database\/sql&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;log&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;net\/http&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;time&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/go-sql-driver\/mysql&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/gomodule\/redigo\/redis&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ ShortLink \u8868\u793a\u77ed\u94fe\u7ed3\u6784\u4f53<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">ShortLink<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ID<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ShortCode<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">OriginalURL<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ExpireTime<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Time<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u751f\u6210\u77ed\u94fe<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">generateShortCode<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8fd9\u91cc\u53ef\u4ee5\u4f7f\u7528\u66f4\u590d\u6742\u7684\u7b97\u6cd5\u751f\u6210\u552f\u4e00\u77ed\u7801<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Sprintf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;%d&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Now<\/span><span class=\"p\">().<\/span><span class=\"nf\">UnixNano<\/span><span class=\"p\">())<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4fdd\u5b58\u77ed\u94fe\u5230 MySQL<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">saveShortLinkToMySQL<\/span><span class=\"p\">(<\/span><span class=\"nx\">db<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">sql<\/span><span class=\"p\">.<\/span><span class=\"nx\">DB<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"w\"> <\/span><span class=\"nx\">ShortLink<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">query<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;INSERT INTO short_links (short_code, original_url, expire_time) VALUES (?,?,?)&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">Exec<\/span><span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ShortCode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">OriginalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ExpireTime<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4ece MySQL \u4e2d\u83b7\u53d6\u77ed\u94fe<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">getShortLinkFromMySQL<\/span><span class=\"p\">(<\/span><span class=\"nx\">db<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">sql<\/span><span class=\"p\">.<\/span><span class=\"nx\">DB<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">ShortLink<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">query<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;SELECT id, short_code, original_url, expire_time FROM short_links WHERE short_code =?&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">QueryRow<\/span><span class=\"p\">(<\/span><span class=\"nx\">query<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"w\"> <\/span><span class=\"nx\">ShortLink<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">row<\/span><span class=\"p\">.<\/span><span class=\"nf\">Scan<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ID<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ShortCode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">OriginalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ExpireTime<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">sql<\/span><span class=\"p\">.<\/span><span class=\"nx\">ErrNoRows<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u77ed\u94fe\u672a\u627e\u5230&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4fdd\u5b58\u70ed\u70b9 URL \u5230 Redis<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">saveHotURLToRedis<\/span><span class=\"p\">(<\/span><span class=\"nx\">conn<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Conn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">conn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Do<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;SET&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8bbe\u7f6e\u8fc7\u671f\u65f6\u95f4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">conn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Do<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;EXPIRE&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">3600<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ 1 \u5c0f\u65f6\u8fc7\u671f\uff0c\u53ef\u6839\u636e\u9700\u6c42\u8c03\u6574<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u4ece Redis \u4e2d\u83b7\u53d6\u70ed\u70b9 URL<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">getHotURLFromRedis<\/span><span class=\"p\">(<\/span><span class=\"nx\">conn<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Conn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nf\">String<\/span><span class=\"p\">(<\/span><span class=\"nx\">conn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Do<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;GET&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">ErrNil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Redis \u4e2d\u672a\u627e\u5230\u70ed\u70b9\u77ed\u94fe&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5904\u7406\u77ed\u94fe\u8bf7\u6c42<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">handleShortLinkRequest<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">ResponseWriter<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">Request<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">.<\/span><span class=\"nx\">URL<\/span><span class=\"p\">.<\/span><span class=\"nx\">Path<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">:]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c1d\u8bd5\u4ece Redis \u4e2d\u83b7\u53d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisConn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nf\">Dial<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;tcp&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;localhost:6379&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u8fde\u63a5 Redis \u5931\u8d25:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">w<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteHeader<\/span><span class=\"p\">(<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusInternalServerError<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisConn<\/span><span class=\"p\">.<\/span><span class=\"nf\">Close<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">getHotURLFromRedis<\/span><span class=\"p\">(<\/span><span class=\"nx\">redisConn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u91cd\u5b9a\u5411\u5230\u539f\u59cb URL<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">Redirect<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">originalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusFound<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4ece MySQL \u4e2d\u83b7\u53d6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">sql<\/span><span class=\"p\">.<\/span><span class=\"nf\">Open<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;mysql&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;username:password@tcp(localhost:3306)\/database_name&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u8fde\u63a5 MySQL \u5931\u8d25:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">w<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteHeader<\/span><span class=\"p\">(<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusInternalServerError<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">Close<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nf\">getShortLinkFromMySQL<\/span><span class=\"p\">(<\/span><span class=\"nx\">db<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">w<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteHeader<\/span><span class=\"p\">(<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusNotFound<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fprintf<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;\u77ed\u94fe\u672a\u627e\u5230&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u68c0\u67e5\u662f\u5426\u8fc7\u671f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Now<\/span><span class=\"p\">().<\/span><span class=\"nf\">After<\/span><span class=\"p\">(<\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">ExpireTime<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">w<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteHeader<\/span><span class=\"p\">(<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusGone<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fprintf<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;\u77ed\u94fe\u5df2\u8fc7\u671f&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4fdd\u5b58\u5230 Redis \u4f5c\u4e3a\u70ed\u70b9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nf\">saveHotURLToRedis<\/span><span class=\"p\">(<\/span><span class=\"nx\">redisConn<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortCode<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">OriginalURL<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\u4fdd\u5b58\u5230 Redis \u5931\u8d25:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u91cd\u5b9a\u5411\u5230\u539f\u59cb URL<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">Redirect<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">shortLink<\/span><span class=\"p\">.<\/span><span class=\"nx\">OriginalURL<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">StatusFound<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">HandleFunc<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\/&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">handleShortLinkRequest<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fatal<\/span><span class=\"p\">(<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">ListenAndServe<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;:8080&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u70b9\u51fb\u77ed\u94fe\u53d1\u751f\u4e86\u4ec0\u4e48\">\u70b9\u51fb\u77ed\u94fe\u53d1\u751f\u4e86\u4ec0\u4e48<\/h2>\n<ol>\n<li>\u7528\u6237\u8bbf\u95ee\u77ed\u94fe\uff0c\u6d4f\u89c8\u5668\u53d1\u9001\u8bf7\u6c42\u5230\u670d\u52a1\u5668\u3002<\/li>\n<li>\u670d\u52a1\u5668\u4ece Redis \u4e2d\u83b7\u53d6\u70ed\u70b9 URL\u3002<\/li>\n<li>\u5982\u679c\u70ed\u70b9 URL \u4e0d\u5b58\u5728\uff0c\u5219\u4ece MySQL \u4e2d\u83b7\u53d6\u77ed\u94fe\u3002<\/li>\n<li>\u670d\u52a1\u5668\u68c0\u67e5\u77ed\u94fe\u662f\u5426\u8fc7\u671f\u3002<\/li>\n<li>\u5982\u679c\u77ed\u94fe\u8fc7\u671f\uff0c\u5219\u8fd4\u56de 410 Gone\u3002<\/li>\n<li>\u5982\u679c\u77ed\u94fe\u672a\u8fc7\u671f\uff0c\u5219\u4fdd\u5b58\u5230 Redis \u4f5c\u4e3a\u70ed\u70b9\u3002<\/li>\n<li>\u670d\u52a1\u5668\u91cd\u5b9a\u5411\u5230\u539f\u59cb URL\u3002<\/li>\n<\/ol>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/www.cnblogs.com\/beatle-go\/p\/18301400\">https:\/\/www.cnblogs.com\/beatle-go\/p\/18301400<\/a><\/p>"},{"title":"go \u5e76\u53d1\u539f\u8bed","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%B9%B6%E5%8F%91%E5%8E%9F%E8%AF%AD\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go-%E5%B9%B6%E5%8F%91%E5%8E%9F%E8%AF%AD\/","description":"<h2 id=\"go-\u5e76\u53d1\u539f\u8bed\">go \u5e76\u53d1\u539f\u8bed<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/sync.png\" alt=\"img\"><\/p>\n<p>form <a href=\"https:\/\/www.bilibili.com\/video\/BV1D7tfeCENG?vd_source=1fc15dfc7872eca10bc43b8ee8d73958\">https:\/\/www.bilibili.com\/video\/BV1D7tfeCENG?vd_source=1fc15dfc7872eca10bc43b8ee8d73958<\/a><\/p>"},{"title":"go\u4e2d\u600e\u4e48\u5411\u6570\u636e\u5e93\u5b58\u5165\u5207\u7247","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go%E4%B8%AD%E6%80%8E%E4%B9%88%E5%90%91%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%98%E5%85%A5%E5%88%87%E7%89%87\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go%E4%B8%AD%E6%80%8E%E4%B9%88%E5%90%91%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%98%E5%85%A5%E5%88%87%E7%89%87\/","description":"<h2 id=\"\u9519\u8bef\">\u9519\u8bef<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">DataIndicators<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectID<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectPage<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvOther<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">UvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">UvOther<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"o\">*<\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5176\u4ed6\u5b57\u6bb5...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">DataIndicators<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectID<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectPage<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u666e\u901a\u5207\u7247<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvOther<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u666e\u901a\u5207\u7247<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">UvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u666e\u901a\u5207\u7247<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">UvOther<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u666e\u901a\u5207\u7247<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5176\u4ed6\u5b57\u6bb5...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u7528\u4e0a\u8bc9\u4e24\u79cd\u65b9\u5f0f\u5b58\u50a8\u90fd\u4f1a\u62a5\u9519,\u56e0\u4e3a\u4e0d\u652f\u6301\u5b58\u50a8\u7a7a\u5207\u7247\uff08\u4f5c\u4e3a\u6307\u9488\u7c7b\u578b\uff0c\u76f8\u5f53\u4e8e\u51fa\u73b0\u4e86\u7a7a\u6307\u9488\uff09<\/p>\n<h2 id=\"\u89e3\u51b3\">\u89e3\u51b3<\/h2>\n<ol>\n<li><strong>\u4ee5json\u683c\u5f0f\u5b58\u50a8<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">DataIndicators<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ID<\/span><span class=\"w\"> <\/span><span class=\"kt\">uint<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;id&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectID<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;project_id&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectPage<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;project_page&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"s\">`gorm:&#34;type:json&#34; json:&#34;pv_tracking_point&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvOther<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"s\">`gorm:&#34;type:json&#34; json:&#34;pv_other&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5176\u4ed6\u5b57\u6bb5...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li><strong>\u81ea\u5b9a\u4e49\u7c7b\u578b\uff0c\u4f7f\u7528 GORM \u7684 Scanner \u548c Valuer \u63a5\u53e3<\/strong><\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">StringArray<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"kt\">string<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Scan \u4ece\u6570\u636e\u5e93\u8bfb\u53d6\u6570\u636e\u65f6\u5c06\u6570\u636e\u53cd\u5e8f\u5217\u5316<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">StringArray<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Scan<\/span><span class=\"p\">(<\/span><span class=\"nx\">value<\/span><span class=\"w\"> <\/span><span class=\"kd\">interface<\/span><span class=\"p\">{})<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">bytes<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">.([]<\/span><span class=\"kt\">byte<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"p\">!<\/span><span class=\"nx\">ok<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">errors<\/span><span class=\"p\">.<\/span><span class=\"nf\">New<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;failed to scan value&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">Unmarshal<\/span><span class=\"p\">(<\/span><span class=\"nx\">bytes<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ Value \u5c06\u6570\u636e\u5e8f\u5217\u5316\u6210\u6570\u636e\u5e93\u5b58\u50a8\u683c\u5f0f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"nx\">StringArray<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">Value<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">driver<\/span><span class=\"p\">.<\/span><span class=\"nx\">Value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">json<\/span><span class=\"p\">.<\/span><span class=\"nf\">Marshal<\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">DataIndicators<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ID<\/span><span class=\"w\"> <\/span><span class=\"kt\">uint<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;id&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectID<\/span><span class=\"w\"> <\/span><span class=\"kt\">int<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;project_id&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ProjectPage<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;project_page&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvTrackingPoint<\/span><span class=\"w\"> <\/span><span class=\"nx\">StringArray<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;pv_tracking_point&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">PvOther<\/span><span class=\"w\"> <\/span><span class=\"nx\">StringArray<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;pv_other&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5176\u4ed6\u5b57\u6bb5...<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div>"},{"title":"go\u8bed\u8a00main\u5305\u7684\u4e00\u4e2a\u5c0ftip","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go%E8%AF%AD%E8%A8%80main%E5%8C%85%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B0%8Ftip\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/go%E8%AF%AD%E8%A8%80main%E5%8C%85%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B0%8Ftip\/","description":"<h1 id=\"go-\u5e94\u7528\u4e2d-package-main-\u7684\u89c4\u5219\">Go \u5e94\u7528\u4e2d package main \u7684\u89c4\u5219<\/h1>\n<h2 id=\"package\">package<\/h2>\n<ul>\n<li>golang \u7684\u6240\u6709\u6587\u4ef6\u90fd\u9700\u8981\u6307\u5b9a\u5176\u6240\u5728\u7684\u5305\uff08package\uff09\uff0c\u5305\u6709\u4e24\u79cd\u7c7b\u578b\uff0c\u4e00\u79cd\u662f main \u5305\uff0c\u4f7f\u7528 package main \u5728\u4ee3\u7801\u7684\u6700\u524d\u9762\u58f0\u660e\u3002\u53e6\u5916\u4e00\u79cd\u5c31\u662f \u975e main \u5305\uff0c\u4f7f\u7528 package + \u5305\u540d \u3002main \u5305\u53ef\u4ee5\u6709\u552f\u4e00\u7684\u4e00\u4e2a main \u51fd\u6570\uff0c\u8fd9\u4e2a\u51fd\u6570\u4e5f\u662f\u7a0b\u5e8f\u7684\u5165\u53e3\u3002\u4e5f\u53ea\u6709 main \u5305\u53ef\u4ee5\u7f16\u8bd1\u6210\u53ef\u6267\u884c\u7684\u6587\u4ef6\u3002<\/li>\n<\/ul>\n<h2 id=\"\u89c4\u5219\">\u89c4\u5219<\/h2>\n<ol>\n<li>import \u5bfc\u5165\u7684\u662f\u76f8\u5bf9\u8def\u5f84\uff0c\u975e package \u540d\uff01<\/li>\n<li>\u4e60\u60ef\u4e0a\u5c06 package \u540d\u548c\u76ee\u5f55\u540d\u4fdd\u6301\u4e00\u81f4\uff0c\u5982\u5b9e\u4f8b\u4e2d package A \u5c3d\u91cf\u5728.\/A \u6587\u4ef6\u5939\u4e0b<\/li>\n<li>\u4ee3\u7801\u4e2d\u5f15\u7528\u5305\u65b9\u6cd5 \/ \u5bf9\u8c61 \/ \u53d8\u91cf\u65f6\uff0c\u5982\u8c03\u7528 package A \u4e2d\u7684 a \u51fd\u6570\uff0c\u4f7f\u7528 A.a \u800c\u975e\u76ee\u5f55\u540d<\/li>\n<li>\u540c\u4e00\u76ee\u5f55\u4e0b\uff0c\u6240\u6709\u6e90\u6587\u4ef6\u5fc5\u987b\u4f7f\u7528\u76f8\u540c\u7684\u5305\u540d\uff0c\u4e00\u4e2a\u6587\u4ef6\u5939\u4e0b\u53ea\u80fd\u6709\u4e00\u4e2a package\uff1b\u5982\u679c\u591a\u4e2a\u6587\u4ef6\u5939\u4e0b\u6709\u540c\u540d package\uff0c\u5176\u5b9e\u53ea\u662f\u5f7c\u6b64\u65e0\u5173\u7684 package\uff0c\u5982\u679c\u9700\u8981\u540c\u65f6\u4f7f\u7528\u4e0d\u540c\u76ee\u5f55\u4e0b\u7684\u540c\u540d package\uff0cimport \u65f6\u9700\u8981\u4e3a\u6bcf\u4e2a\u76ee\u5f55\u6307\u5b9a package \u522b\u540d\uff1a<\/li>\n<li>\u540c\u4e00 package \u4e0b\u4e0d\u540c\u6587\u4ef6\u95f4\u53ef\u4ee5\u76f4\u63a5\u8c03\u7528<\/li>\n<li>\u5927\u5199\u5b57\u6bcd\u5f00\u5934\u7684\u53d8\u91cf\u65b9\u6cd5\u66b4\u9732\u5230\u5305\u5916\uff0c\u5305\u5185\u5927\u5c0f\u5199\u968f\u610f<\/li>\n<li>\u591a\u4e2a go \u6587\u4ef6\u5728 main \u5305\u4e0b\u662f\u65e0\u6cd5\u76f8\u4e92\u8c03\u7528\u7684\uff0c\u9700\u8981\u4f7f\u7528 go run *.go \u547d\u4ee4<\/li>\n<\/ol>\n<p>\u4e0a\u8ff0\u8f6c\u8f7d\u81ea@Luson\u7684\u6587\u7ae0<a href=\"https:\/\/learnku.com\/articles\/65136\">https:\/\/learnku.com\/articles\/65136<\/a><\/p>"},{"title":"http \u7684\u6210\u957f\u53f2","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/http-%E7%9A%84%E6%88%90%E9%95%BF%E5%8F%B2\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/http-%E7%9A%84%E6%88%90%E9%95%BF%E5%8F%B2\/","description":"<h2 id=\"http10\">http1.0<\/h2>\n<ul>\n<li><strong>\u65e0\u72b6\u6001\uff0c\u65e0\u8fde\u63a5<\/strong>\uff1a\u6bcf\u6b21\u8bf7\u6c42\u90fd\u662f\u72ec\u7acb\u7684\uff0c\u670d\u52a1\u5668\u4e0d\u4f1a\u8bb0\u5f55\u5ba2\u6237\u7aef\u7684\u72b6\u6001\u3002<\/li>\n<li><strong>\u77ed\u8fde\u63a5<\/strong>\uff1a\u6bcf\u6b21\u53d1\u9001\u8bf7\u6c42\u90fd\u9700\u8981\u91cd\u65b0\u5efa\u7acb TCP \u8fde\u63a5\uff08\u4e09\u6b21\u63e1\u624b\uff09\uff0c\u5b8c\u6210\u540e\u7acb\u5373\u65ad\u5f00\uff0c\u5bfc\u81f4\u6027\u80fd\u6d6a\u8d39\u3002<\/li>\n<li><strong>\u65e0host\u5934\u57df<\/strong>\uff1aHTTP\/1.0 \u8bf7\u6c42\u4e2d\u6ca1\u6709 Host \u5b57\u6bb5\uff0c\u65e0\u6cd5\u652f\u6301\u540c\u4e00 IP \u5730\u5740\u4e0b\u7684\u591a\u4e2a\u57df\u540d\uff08\u865a\u62df\u4e3b\u673a\uff09\u3002<\/li>\n<li><strong>\u4e0d\u5141\u8bb8\u65ad\u70b9\u7eed\u4f20<\/strong>\uff1a\u53ea\u80fd\u4f20\u8f93\u6574\u4e2a\u5bf9\u8c61\uff0c\u65e0\u6cd5\u53ea\u4f20\u8f93\u6587\u4ef6\u7684\u4e00\u90e8\u5206\u3002<\/li>\n<\/ul>\n<h2 id=\"http11\">http1.1<\/h2>\n<ul>\n<li><strong>\u957f\u8fde\u63a5<\/strong>\uff1a\u9ed8\u8ba4\u542f\u7528 Connection: keep-alive\uff0c\u5141\u8bb8\u5728\u4e00\u4e2a TCP \u8fde\u63a5\u4e0a\u53d1\u9001\u591a\u4e2a\u8bf7\u6c42\uff0c\u51cf\u5c11\u4e86\u8fde\u63a5\u5efa\u7acb\u7684\u5f00\u9500\u3002<\/li>\n<li><strong>\u8bf7\u6c42\u7ba1\u9053\u5316<\/strong>\uff1a\u652f\u6301\u5728\u540c\u4e00\u4e2a\u8fde\u63a5\u4e2d\u540c\u65f6\u53d1\u9001\u591a\u4e2a\u8bf7\u6c42\uff0c\u4f46\u670d\u52a1\u5668\u4ecd\u9700\u6309\u987a\u5e8f\u54cd\u5e94\uff0c\u5b58\u5728\u961f\u5934\u963b\u585e\u95ee\u9898\u3002<\/li>\n<li><strong>\u589e\u52a0\u7f13\u5b58\u5904\u7406<\/strong>\uff1a\u5f15\u5165\u4e86 Cache-Control \u548c ETag \u7b49\u5b57\u6bb5\uff0c\u4f18\u5316\u4e86\u7f13\u5b58\u7ba1\u7406\u3002<\/li>\n<li><strong>\u589e\u52a0Host\u5b57\u6bb5<\/strong>\uff1a\u652f\u6301\u865a\u62df\u4e3b\u673a\uff08\u540c\u4e00 IP \u5730\u5740\u4e0b\u7684\u591a\u4e2a\u57df\u540d\uff09\u3002<\/li>\n<li><strong>\u652f\u6301\u65ad\u70b9\u7eed\u4f20<\/strong>\uff1a\u901a\u8fc7 Range \u8bf7\u6c42\u5934\u5b9e\u73b0\u90e8\u5206\u5185\u5bb9\u4f20\u8f93\u3002<\/li>\n<\/ul>\n<h2 id=\"http20\">http2.0<\/h2>\n<ul>\n<li><strong>\u4e8c\u8fdb\u5236\u5206\u5e27<\/strong>\uff1a\u5c06 HTTP \u62a5\u6587\u5206\u4e3a\u66f4\u5c0f\u7684\u5e27\u8fdb\u884c\u4f20\u8f93\uff0c\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u901a\u8fc7\u5e27\u7684\u6807\u8bc6\u7b26\u91cd\u65b0\u7ec4\u88c5\u62a5\u6587\u3002<\/li>\n<li><strong>\u5934\u90e8\u538b\u7f29<\/strong>\uff1a\u4f7f\u7528 HPACK \u7b97\u6cd5\u5bf9\u5934\u90e8\u8fdb\u884c\u538b\u7f29\uff0c\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u7ef4\u62a4\u4e00\u4e2a\u5934\u90e8\u7d22\u5f15\u8868\uff0c\u51cf\u5c11\u91cd\u590d\u5934\u90e8\u7684\u4f20\u8f93\u3002<\/li>\n<li><strong>\u591a\u8def\u590d\u7528<\/strong>\uff1a\u5728\u4e00\u4e2a TCP \u8fde\u63a5\u4e2d\u53ef\u4ee5\u540c\u65f6\u5904\u7406\u591a\u4e2a\u8bf7\u6c42\uff0c\u6bcf\u4e2a\u8bf7\u6c42\u5bf9\u5e94\u4e00\u4e2a\u72ec\u7acb\u7684\u6d41\uff08Stream\uff09\uff0c\u89e3\u51b3\u4e86 HTTP\/1.1 \u7684\u961f\u5934\u963b\u585e\u95ee\u9898\u3002<\/li>\n<li><strong>\u670d\u52a1\u5668\u63a8\u9001<\/strong>\uff1a\u670d\u52a1\u5668\u53ef\u4ee5\u4e3b\u52a8\u5411\u5ba2\u6237\u7aef\u63a8\u9001\u8d44\u6e90\uff0c\u800c\u65e0\u9700\u5ba2\u6237\u7aef\u663e\u5f0f\u8bf7\u6c42\u3002<\/li>\n<\/ul>\n<h2 id=\"http30\">http3.0<\/h2>\n<ul>\n<li><strong>\u57fa\u4e8eQUIC\u534f\u8bae<\/strong>\uff1aQUIC \u662f Google \u5f00\u53d1\u7684\u57fa\u4e8e UDP \u7684\u4f20\u8f93\u534f\u8bae\uff0c\u51cf\u5c11\u4e86 TCP \u7684\u4e09\u6b21\u63e1\u624b\u548c TLS \u63e1\u624b\u65f6\u95f4\u3002<\/li>\n<li><strong>\u89e3\u51b3\u961f\u5934\u963b\u585e\u95ee\u9898<\/strong>\uff1aHTTP\/3.0 \u4f7f\u7528\u72ec\u7acb\u7684\u6d41\uff08Stream\uff09\uff0c\u5373\u4f7f\u67d0\u4e2a\u6d41\u4e22\u5305\uff0c\u4e5f\u4e0d\u4f1a\u963b\u585e\u5176\u4ed6\u6d41\u7684\u4f20\u8f93\u3002<\/li>\n<li><strong>\u4f18\u5316\u4e86\u91cd\u4f20\u7b56\u7565<\/strong>\uff1a\u91cd\u4f20\u5305\u548c\u539f\u5305\u7684\u7f16\u53f7\u4e0d\u540c\uff0c\u964d\u4f4e\u4e86\u91cd\u4f20\u8ba1\u7b97\u7684\u5f00\u9500\u3002<\/li>\n<li><strong>\u8fde\u63a5\u8fc1\u79fb<\/strong>\uff1a\u4f7f\u7528 64 \u4f4d\u968f\u673a\u6570\u6807\u8bc6\u8fde\u63a5\uff0c\u800c\u4e0d\u662f\u4f9d\u8d56 TCP \u7684\u56db\u5143\u7ec4\uff08IP + \u7aef\u53e3\uff09\uff0c\u652f\u6301\u5ba2\u6237\u7aef\u5728\u7f51\u7edc\u5207\u6362\uff08\u5982 Wi-Fi \u5230 4G\uff09\u65f6\u4fdd\u6301\u8fde\u63a5\u3002<\/li>\n<li><strong>\u66f4\u9ad8\u6548\u7684\u6d41\u91cf\u63a7\u5236<\/strong>\uff1a\u63d0\u4f9b\u66f4\u7075\u6d3b\u7684\u6d41\u91cf\u63a7\u5236\u673a\u5236\uff0c\u63d0\u5347\u4f20\u8f93\u6548\u7387\u3002<\/li>\n<\/ul>\n<h2 id=\"\u5404\u7248\u672c\u5bf9\u6bd4\">\u5404\u7248\u672c\u5bf9\u6bd4<\/h2>\n<table>\n <thead>\n <tr>\n <th>\u7279\u6027<\/th>\n <th>HTTP\/1.0<\/th>\n <th>HTTP\/1.1<\/th>\n <th>HTTP\/2.0<\/th>\n <th>HTTP\/3.0<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td>\u8fde\u63a5\u65b9\u5f0f<\/td>\n <td>\u77ed\u8fde\u63a5<\/td>\n <td>\u957f\u8fde\u63a5<\/td>\n <td>\u957f\u8fde\u63a5<\/td>\n <td>\u57fa\u4e8e QUIC \u7684\u957f\u8fde\u63a5<\/td>\n <\/tr>\n <tr>\n <td>\u6570\u636e\u4f20\u8f93\u683c\u5f0f<\/td>\n <td>\u6587\u672c<\/td>\n <td>\u6587\u672c<\/td>\n <td>\u4e8c\u8fdb\u5236\u5206\u5e27<\/td>\n <td>\u4e8c\u8fdb\u5236\u5206\u5e27<\/td>\n <\/tr>\n <tr>\n <td>\u591a\u8def\u590d\u7528<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u652f\u6301<\/td>\n <td>\u652f\u6301<\/td>\n <\/tr>\n <tr>\n <td>\u961f\u5934\u963b\u585e<\/td>\n <td>\u5b58\u5728<\/td>\n <td>\u5b58\u5728<\/td>\n <td>TCP \u5c42\u961f\u5934\u963b\u585e<\/td>\n <td>\u65e0\u961f\u5934\u963b\u585e<\/td>\n <\/tr>\n <tr>\n <td>\u5934\u90e8\u538b\u7f29<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u652f\u6301\uff08HPACK\uff09<\/td>\n <td>\u652f\u6301\uff08QPACK\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u670d\u52a1\u5668\u63a8\u9001<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u4e0d\u652f\u6301<\/td>\n <td>\u652f\u6301<\/td>\n <td>\u652f\u6301<\/td>\n <\/tr>\n <tr>\n <td>\u4f20\u8f93\u534f\u8bae<\/td>\n <td>TCP<\/td>\n <td>TCP<\/td>\n <td>TCP<\/td>\n <td>QUIC\uff08\u57fa\u4e8e UDP\uff09<\/td>\n <\/tr>\n <tr>\n <td>\u5b89\u5168\u6027<\/td>\n <td>\u4e0d\u5b89\u5168<\/td>\n <td>\u4e0d\u5b89\u5168<\/td>\n <td>\u5b89\u5168\uff08TLS\uff09<\/td>\n <td>\u5b89\u5168\uff08TLS\uff09<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<p>\u53c2\u8003: <a href=\"https:\/\/zhuanlan.zhihu.com\/p\/266578819\">https:\/\/zhuanlan.zhihu.com\/p\/266578819<\/a><\/p>"},{"title":"linux \u5e38\u7528\u547d\u4ee4","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/linux-%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\/","description":"<ol>\n<li><strong>ls \u5217\u51fa\u76ee\u5f55\u5185\u5bb9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>-a \u663e\u793a\u6240\u6709\u6587\u4ef6\uff0c\u5305\u62ec\u9690\u85cf\u6587\u4ef6<\/li>\n<li>-l \u663e\u793a\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u542b\u6587\u4ef6\u6743\u9650\u3001\u6240\u6709\u8005\u3001\u5927\u5c0f\u3001\u4fee\u6539\u65e5\u671f\u7b49<\/li>\n<li>-h \u4eba\u6027\u5316\u663e\u793a\u6587\u4ef6\u5927\u5c0f\uff0c\u4f8b\u5982 1K\uff0c234M\uff0c2G\uff08\u9700\u4e0e <code>-l<\/code> \u4e00\u8d77\u4f7f\u7528\uff09<\/li>\n<\/ul>\n<ol start=\"2\">\n<li><strong>cd \u5207\u6362\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>cd .. \u5207\u6362\u5230\u4e0a\u7ea7\u76ee\u5f55<\/li>\n<li>cd ~ \u5207\u6362\u5230\u7528\u6237\u4e3b\u76ee\u5f55<\/li>\n<\/ul>\n<ol start=\"3\">\n<li><strong>pwd \u67e5\u770b\u5f53\u524d\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>pwd \u67e5\u770b\u5f53\u524d\u76ee\u5f55\u7684\u5b8c\u6574\u8def\u5f84<\/li>\n<\/ul>\n<ol start=\"4\">\n<li><strong>mkdir \u521b\u5efa\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>mkdir [dir] \u521b\u5efa\u4e00\u4e2a\u65b0\u76ee\u5f55<\/li>\n<\/ul>\n<ol start=\"5\">\n<li><strong>touch \u521b\u5efa\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>touch [file] \u521b\u5efa\u4e00\u4e2a\u65b0\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"6\">\n<li><strong>rm \u5220\u9664\u6587\u4ef6\u6216\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>rm [-r] [file] \u5220\u9664\u4e00\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55\uff0c-r \u9012\u5f52\u5220\u9664\u76ee\u5f55<\/li>\n<li>rm -rf [dir] \u5f3a\u5236\u5220\u9664\u76ee\u5f55\u53ca\u5176\u5185\u5bb9\uff0c\u4e0d\u63d0\u793a\u786e\u8ba4<\/li>\n<\/ul>\n<ol start=\"7\">\n<li><strong>cp \u590d\u5236\u6587\u4ef6\u6216\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>cp [-r] [source] [target] \u590d\u5236\u4e00\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55\uff0c-r \u9012\u5f52\u590d\u5236\u76ee\u5f55<\/li>\n<li>cp -p [source] [target] \u4fdd\u7559\u6587\u4ef6\u7684\u6743\u9650\u3001\u65f6\u95f4\u6233\u7b49\u5c5e\u6027<\/li>\n<\/ul>\n<ol start=\"8\">\n<li><strong>mv \u79fb\u52a8\u6587\u4ef6\u6216\u76ee\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>mv [source] [target] \u79fb\u52a8\/\u91cd\u547d\u540d\u4e00\u4e2a\u6587\u4ef6\u6216\u76ee\u5f55<\/li>\n<\/ul>\n<ol start=\"9\">\n<li><strong>cat \u67e5\u770b\u6587\u4ef6\u5185\u5bb9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>cat [file] \u67e5\u770b\u4e00\u4e2a\u6587\u4ef6\u7684\u5185\u5bb9<\/li>\n<\/ul>\n<ol start=\"10\">\n<li><strong>grep \u641c\u7d22\u6587\u4ef6\u5185\u5bb9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>grep -i [pattern] [file] \u5ffd\u7565\u5927\u5c0f\u5199\u641c\u7d22<\/li>\n<li>grep -r [pattern] [directory] \u9012\u5f52\u641c\u7d22\u76ee\u5f55\u4e2d\u7684\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"11\">\n<li><strong>head \u67e5\u770b\u6587\u4ef6\u5f00\u5934\u5185\u5bb9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>head [-n] [file] \u67e5\u770b\u4e00\u4e2a\u6587\u4ef6\u5f00\u5934\u7684\u82e5\u5e72\u884c\uff0c\u9ed8\u8ba4\u663e\u793a10\u884c<\/li>\n<\/ul>\n<ol start=\"12\">\n<li><strong>tail \u67e5\u770b\u6587\u4ef6\u672b\u5c3e\u5185\u5bb9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>tail [-n] [file] \u67e5\u770b\u4e00\u4e2a\u6587\u4ef6\u672b\u5c3e\u7684\u82e5\u5e72\u884c\uff0c\u9ed8\u8ba4\u663e\u793a10\u884c<\/li>\n<\/ul>\n<ol start=\"13\">\n<li><strong>history \u67e5\u770b\u5386\u53f2\u547d\u4ee4<\/strong><\/li>\n<\/ol>\n<ul>\n<li>history \u67e5\u770b\u547d\u4ee4\u5386\u53f2\uff0c\u8f93\u5165!number \u6267\u884c\u5386\u53f2\u547d\u4ee4<\/li>\n<\/ul>\n<ol start=\"14\">\n<li><strong>ps \u67e5\u770b\u8fdb\u7a0b\u4fe1\u606f<\/strong><\/li>\n<\/ol>\n<ul>\n<li>ps -ef \u67e5\u770b\u6240\u6709\u8fdb\u7a0b\u4fe1\u606f<\/li>\n<li>ps -ef | grep [keyword] \u67e5\u770b\u5305\u542b\u6307\u5b9a\u5173\u952e\u5b57\u7684\u8fdb\u7a0b\u4fe1\u606f<\/li>\n<li>ps aux \u67e5\u770b\u6240\u6709\u8fdb\u7a0b\u4fe1\u606f\uff0c\u663e\u793a\u66f4\u8be6\u7ec6\u7684\u683c\u5f0f<\/li>\n<\/ul>\n<ol start=\"15\">\n<li><strong>kill \u6740\u6b7b\u8fdb\u7a0b<\/strong><\/li>\n<\/ol>\n<ul>\n<li>kill [pid] \u6740\u6b7b\u4e00\u4e2a\u8fdb\u7a0b<\/li>\n<\/ul>\n<ol start=\"16\">\n<li><strong>shutdown \u5173\u673a<\/strong><\/li>\n<\/ol>\n<ul>\n<li>shutdown -h now \u7acb\u5373\u5173\u673a<\/li>\n<li>shutdown -r now \u7acb\u5373\u91cd\u542f<\/li>\n<li>shutdown -c \u53d6\u6d88\u5df2\u8ba1\u5212\u7684\u5173\u673a\u4efb\u52a1<\/li>\n<\/ul>\n<ol start=\"17\">\n<li><strong>reboot \u91cd\u542f<\/strong><\/li>\n<\/ol>\n<ul>\n<li>reboot \u7acb\u5373\u91cd\u542f<\/li>\n<\/ul>\n<ol start=\"18\">\n<li><strong>ifconfig \u67e5\u770b\u7f51\u7edc\u4fe1\u606f<\/strong><\/li>\n<\/ol>\n<ul>\n<li>ifconfig \u67e5\u770b\u672c\u673a IP \u5730\u5740\uff08\u90e8\u5206\u7cfb\u7edf\u53ef\u80fd\u9700\u8981\u5b89\u88c5 net-tools\uff09<\/li>\n<li>ip addr \u67e5\u770b\u672c\u673a IP \u5730\u5740\uff08\u63a8\u8350\u4f7f\u7528 <code>ip<\/code> \u547d\u4ee4\u66ff\u4ee3 <code>ifconfig<\/code>\uff09<\/li>\n<\/ul>\n<ol start=\"19\">\n<li><strong>ping \u68c0\u67e5\u7f51\u7edc\u8fde\u901a\u6027<\/strong><\/li>\n<\/ol>\n<ul>\n<li>ping [ip] \u68c0\u67e5 IP \u5730\u5740\u7684\u8fde\u901a\u6027<\/li>\n<\/ul>\n<ol start=\"20\">\n<li><strong>whoami \u67e5\u770b\u5f53\u524d\u7528\u6237<\/strong><\/li>\n<\/ol>\n<ul>\n<li>whoami \u67e5\u770b\u5f53\u524d\u7528\u6237<\/li>\n<\/ul>\n<ol start=\"21\">\n<li><strong>passwd \u4fee\u6539\u5bc6\u7801<\/strong><\/li>\n<\/ol>\n<ul>\n<li>passwd \u4fee\u6539\u5f53\u524d\u7528\u6237\u5bc6\u7801<\/li>\n<\/ul>\n<ol start=\"22\">\n<li><strong>su \u5207\u6362\u7528\u6237<\/strong><\/li>\n<\/ol>\n<ul>\n<li>su [username] \u5207\u6362\u5230\u6307\u5b9a\u7528\u6237<\/li>\n<\/ul>\n<ol start=\"23\">\n<li><strong>chown \u4fee\u6539\u6587\u4ef6\u6240\u6709\u8005<\/strong><\/li>\n<\/ol>\n<ul>\n<li>chown [owner] [file] \u4fee\u6539\u6587\u4ef6\u6240\u6709\u8005<\/li>\n<\/ul>\n<ol start=\"24\">\n<li><strong>chmod \u4fee\u6539\u6587\u4ef6\u6743\u9650<\/strong><\/li>\n<\/ol>\n<ul>\n<li>chmod [mode] [file] \u4fee\u6539\u6587\u4ef6\u6743\u9650\uff0cmode \u4e3a rwx \u683c\u5f0f\u7684\u6743\u9650\u7801<\/li>\n<\/ul>\n<ol start=\"25\">\n<li><strong>apt-get \u5b89\u88c5\u8f6f\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>apt-get install [package] \u5b89\u88c5\u4e00\u4e2a\u8f6f\u4ef6\u5305<\/li>\n<\/ul>\n<ol start=\"26\">\n<li><strong>tar \u6253\u5305\u548c\u89e3\u538b\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>tar -cvf [file.tar] [file1] [file2] &hellip; \u6253\u5305\u6587\u4ef6<\/li>\n<li>tar -czvf [file.tar.gz] [file1] [file2] &hellip; \u6253\u5305\u5e76\u538b\u7f29\u6587\u4ef6<\/li>\n<li>tar -xzvf [file.tar.gz] \u89e3\u538b\u7f29\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"27\">\n<li><strong>zip \u538b\u7f29\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>zip [file.zip] [file1] [file2] &hellip; \u538b\u7f29\u6587\u4ef6<\/li>\n<li>unzip [file.zip] \u89e3\u538b\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"28\">\n<li><strong>unzip \u89e3\u538b\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>unzip [file.zip] \u89e3\u538b\u4e00\u4e2a\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"29\">\n<li><strong>man \u67e5\u770b\u5e2e\u52a9<\/strong><\/li>\n<\/ol>\n<ul>\n<li>man [command] \u67e5\u770b\u6307\u5b9a\u547d\u4ee4\u7684\u5e2e\u52a9\u4fe1\u606f<\/li>\n<li>man -k [keyword] \u641c\u7d22\u4e0e\u5173\u952e\u5b57\u76f8\u5173\u7684\u547d\u4ee4<\/li>\n<\/ul>\n<ol start=\"30\">\n<li><strong>df \u67e5\u770b\u78c1\u76d8\u4fe1\u606f<\/strong><\/li>\n<\/ol>\n<ul>\n<li>df -h \u67e5\u770b\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5<\/li>\n<\/ul>\n<ol start=\"31\">\n<li><strong>free \u67e5\u770b\u5185\u5b58\u4f7f\u7528\u60c5\u51b5<\/strong><\/li>\n<\/ol>\n<ul>\n<li>free -m \u67e5\u770b\u5185\u5b58\u4f7f\u7528\u60c5\u51b5<\/li>\n<\/ul>\n<ol start=\"32\">\n<li><strong>top \u67e5\u770b\u7cfb\u7edf\u4fe1\u606f<\/strong><\/li>\n<\/ol>\n<ul>\n<li>top \u67e5\u770b\u7cfb\u7edf\u4fe1\u606f\uff0c\u5305\u62ec CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u3001\u7f51\u7edc\u7b49\u4fe1\u606f<\/li>\n<\/ul>\n<ol start=\"33\">\n<li><strong>which \u67e5\u770b\u53ef\u6267\u884c\u6587\u4ef6\u4f4d\u7f6e<\/strong><\/li>\n<\/ol>\n<ul>\n<li>which [command] \u67e5\u770b\u53ef\u6267\u884c\u6587\u4ef6\u4f4d\u7f6e<\/li>\n<\/ul>\n<ol start=\"34\">\n<li><strong>find \u67e5\u627e\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>find [path] -name [pattern] \u67e5\u627e\u6307\u5b9a\u8def\u5f84\u4e0b\u7684\u6587\u4ef6\uff0c\u652f\u6301\u901a\u914d\u7b26<\/li>\n<li>find [path] -type f \u67e5\u627e\u6587\u4ef6<\/li>\n<li>find [path] -type d \u67e5\u627e\u76ee\u5f55<\/li>\n<\/ul>\n<ol start=\"35\">\n<li><strong>locate \u67e5\u627e\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>locate [file] \u67e5\u627e\u7cfb\u7edf\u4e2d\u5b58\u5728\u6307\u5b9a\u6587\u4ef6<\/li>\n<\/ul>\n<ol start=\"36\">\n<li><strong>traceroute \u8ddf\u8e2a\u8def\u7531<\/strong><\/li>\n<\/ol>\n<ul>\n<li>traceroute [ip] \u8ddf\u8e2a\u4ece\u672c\u5730\u5230\u6307\u5b9aIP\u5730\u5740\u7684\u8def\u7531\u4fe1\u606f<\/li>\n<\/ul>\n<ol start=\"37\">\n<li><strong>netstat \u67e5\u770b\u7f51\u7edc\u8fde\u63a5<\/strong><\/li>\n<\/ol>\n<ul>\n<li>netstat -an \u67e5\u770b\u6240\u6709\u7f51\u7edc\u8fde\u63a5<\/li>\n<li>ss -an \u67e5\u770b\u6240\u6709\u7f51\u7edc\u8fde\u63a5\uff08\u63a8\u8350\u4f7f\u7528 <code>ss<\/code> \u66ff\u4ee3 <code>netstat<\/code>\uff09<\/li>\n<li>netstat -tnlp \u67e5\u770b\u6240\u6709\u76d1\u542c\u7aef\u53e3<\/li>\n<\/ul>\n<ol start=\"38\">\n<li><strong>telnet \u8fdc\u7a0b\u767b\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>telnet [ip] \u767b\u5f55\u5230\u6307\u5b9aIP\u5730\u5740\u7684\u4e3b\u673a<\/li>\n<\/ul>\n<ol start=\"39\">\n<li><strong>ssh \u8fdc\u7a0b\u767b\u5f55<\/strong><\/li>\n<\/ol>\n<ul>\n<li>ssh [username@ip] \u767b\u5f55\u5230\u6307\u5b9aIP\u5730\u5740\u7684\u4e3b\u673a<\/li>\n<\/ul>\n<ol start=\"40\">\n<li><strong>scp \u8fdc\u7a0b\u590d\u5236\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>scp [source] [username@ip:target] \u590d\u5236\u6587\u4ef6\u5230\u8fdc\u7a0b\u4e3b\u673a<\/li>\n<\/ul>\n<ol start=\"41\">\n<li><strong>wget \u4e0b\u8f7d\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>wget [url] \u4e0b\u8f7d\u6587\u4ef6\u5230\u672c\u5730<\/li>\n<\/ul>\n<ol start=\"42\">\n<li><strong>curl \u4e0b\u8f7d\u6587\u4ef6<\/strong><\/li>\n<\/ol>\n<ul>\n<li>curl [url] \u4e0b\u8f7d\u6587\u4ef6\u5230\u672c\u5730<\/li>\n<\/ul>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/juejin.cn\/post\/6844903930166509581#heading-1\">https:\/\/juejin.cn\/post\/6844903930166509581#heading-1<\/a><\/p>"},{"title":"redis \u4e2d\u7684\u60ca\u7fa4\u6548\u5e94","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E4%B8%AD%E7%9A%84%E6%83%8A%E7%BE%A4%E6%95%88%E5%BA%94\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E4%B8%AD%E7%9A%84%E6%83%8A%E7%BE%A4%E6%95%88%E5%BA%94\/","description":"<h2 id=\"\u4ec0\u4e48\u662f\u60ca\u7fa4\u6548\u5e94\">\u4ec0\u4e48\u662f\u60ca\u7fa4\u6548\u5e94<\/h2>\n<p>\u60ca\u7fa4\u6548\u5e94\u662f\u6307\u5728\u591a\u7ebf\u7a0b\/\u591a\u8fdb\u7a0b\u73af\u5883\u4e2d\uff0c\u5f53\u591a\u4e2a\u8fdb\u7a0b\/\u7ebf\u7a0b\u540c\u65f6\u7b49\u5f85\u540c\u4e00\u4e2a\u8d44\u6e90\uff08\u5982Redis\u4e2d\u7684\u67d0\u4e2a\u952e\uff09\u65f6\uff0c\u4e00\u65e6\u8be5\u8d44\u6e90\u53ef\u7528\uff08\u5982\u952e\u88ab\u8bbe\u7f6e\u6216\u8fc7\u671f\uff09\uff0c\u6240\u6709\u7b49\u5f85\u8005\u90fd\u88ab\u5524\u9192\uff0c\u4f46\u6700\u7ec8\u53ea\u6709\u4e00\u4e2a\u80fd\u6210\u529f\u83b7\u53d6\u8d44\u6e90\uff0c\u5176\u4ed6\u8fdb\u7a0b\/\u7ebf\u7a0b\u5fc5\u987b\u91cd\u65b0\u8fdb\u5165\u7b49\u5f85\u72b6\u6001\uff0c\u9020\u6210\u7cfb\u7edf\u8d44\u6e90\u7684\u6d6a\u8d39\u3002<\/p>\n<h2 id=\"redis\u4e2d\u7684\u60ca\u7fa4\u573a\u666f\">Redis\u4e2d\u7684\u60ca\u7fa4\u573a\u666f<\/h2>\n<ol>\n<li><strong>\u952e\u8fc7\u671f\u901a\u77e5<\/strong>\uff1a\u5f53\u67d0\u4e2a\u952e\u8fc7\u671f\u65f6\uff0c\u591a\u4e2a\u5ba2\u6237\u7aef\u53ef\u80fd\u90fd\u5728\u7b49\u5f85\u8fd9\u4e2a\u4e8b\u4ef6<\/li>\n<li><strong>\u53d1\u5e03\/\u8ba2\u9605<\/strong>\uff1a\u591a\u4e2a\u8ba2\u9605\u8005\u540c\u65f6\u63a5\u6536\u76f8\u540c\u7684\u6d88\u606f<\/li>\n<li><strong>BLPOP\/BRPOP<\/strong>\uff1a\u591a\u4e2a\u5ba2\u6237\u7aef\u963b\u585e\u7b49\u5f85\u540c\u4e00\u4e2a\u5217\u8868<\/li>\n<\/ol>\n<h2 id=\"redis-60\u7684\u6539\u8fdb\">Redis 6.0\u7684\u6539\u8fdb<\/h2>\n<p>Redis 6.0\u5bf9\u952e\u8fc7\u671f\u901a\u77e5\u673a\u5236\u8fdb\u884c\u4e86\u4f18\u5316\uff0c\u51cf\u5c11\u4e86\u60ca\u7fa4\u6548\u5e94\uff1a<\/p>\n<ol>\n<li>\u60f0\u6027\u5220\u9664 + \u4e3b\u52a8\u5220\u9664\u7ed3\u5408<\/li>\n<li>\u8fc7\u671f\u952e\u5220\u9664\u64cd\u4f5c\u66f4\u52a0\u5206\u6563<\/li>\n<li>\u51cf\u5c11\u4e86\u540c\u65f6\u901a\u77e5\u5927\u91cf\u5ba2\u6237\u7aef\u7684\u60c5\u51b5<\/li>\n<\/ol>\n<h2 id=\"\u89e3\u51b3\u65b9\u6848\">\u89e3\u51b3\u65b9\u6848<\/h2>\n<ol>\n<li><strong>\u5ba2\u6237\u7aef\u5b9e\u73b0\u9000\u907f\u7b97\u6cd5<\/strong>\uff1a\u5ba2\u6237\u7aef\u5728\u88ab\u5524\u9192\u540e\u968f\u673a\u5ef6\u8fdf\u91cd\u8bd5<\/li>\n<li><strong>\u4f7f\u7528Redis\u6a21\u5757<\/strong>\uff1a\u5982Redisson\u7684\u5206\u5e03\u5f0f\u9501\u5b9e\u73b0<\/li>\n<li><strong>\u5206\u6563\u70ed\u70b9<\/strong>\uff1a\u5c06\u70ed\u70b9\u952e\u5206\u6563\u5230\u591a\u4e2a\u952e\u4e0a<\/li>\n<li><strong>\u4f7f\u7528Lua\u811a\u672c<\/strong>\uff1a\u4fdd\u8bc1\u64cd\u4f5c\u7684\u539f\u5b50\u6027\uff0c\u51cf\u5c11\u7ade\u4e89<\/li>\n<li><strong>\u5408\u7406\u8bbe\u7f6e\u8d85\u65f6<\/strong>\uff1a\u907f\u514d\u5927\u91cf\u5ba2\u6237\u7aef\u540c\u65f6\u91cd\u8bd5<\/li>\n<\/ol>\n<h2 id=\"\u5b9e\u9645\u6848\u4f8b\">\u5b9e\u9645\u6848\u4f8b<\/h2>\n<p>\u5728\u5206\u5e03\u5f0f\u9501\u573a\u666f\u4e2d\uff0c\u5982\u679c\u591a\u4e2a\u5ba2\u6237\u7aef\u540c\u65f6\u7b49\u5f85\u9501\u91ca\u653e\uff0c\u5f53\u9501\u91ca\u653e\u65f6\u4f1a\u51fa\u73b0\u60ca\u7fa4\u6548\u5e94\u3002\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u662f\uff1a<\/p>\n<pre tabindex=\"0\"><code>\/\/ \u4f2a\u4ee3\u7801\nwhile(!acquireLock()){\n wait = randomBackoff();\n sleep(wait);\n}\n<\/code><\/pre><p>\u901a\u8fc7\u968f\u673a\u9000\u907f\u7b97\u6cd5\uff0c\u53ef\u4ee5\u51cf\u5c11\u5ba2\u6237\u7aef\u540c\u65f6\u91cd\u8bd5\u7684\u6982\u7387\u3002<\/p>"},{"title":"redis \u4e3b\u4ece\u3001\u54e8\u5175\u3001\u96c6\u7fa4","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E4%B8%BB%E4%BB%8E%E5%93%A8%E5%85%B5%E9%9B%86%E7%BE%A4\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E4%B8%BB%E4%BB%8E%E5%93%A8%E5%85%B5%E9%9B%86%E7%BE%A4\/","description":"<h2 id=\"\u4e3b\u4ece\u6a21\u5f0f\">\u4e3b\u4ece\u6a21\u5f0f<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/redis1.png\" alt=\"img\"><\/p>\n<h3 id=\"\u4e3b\u4ece\u6a21\u5f0f\u4f18\u70b9\">\u4e3b\u4ece\u6a21\u5f0f\u4f18\u70b9<\/h3>\n<ul>\n<li>\u4e00\u65e6\u4e3b\u8282\u70b9\u5b95\u673a\uff0c\u4ece\u8282\u70b9\u4f5c\u4e3a\u4e3b\u8282\u70b9\u7684\u5907\u4efd\u53ef\u4ee5\u968f\u65f6\u9876\u4e0a\u6765\u3002<\/li>\n<li>\u6269\u5c55\u4e3b\u8282\u70b9\u7684\u8bfb\u80fd\u529b\uff0c\u5206\u62c5\u4e3b\u8282\u70b9\u8bfb\u538b\u529b\u3002<\/li>\n<li>\u9ad8\u53ef\u7528\u57fa\u77f3\uff1a\u9664\u4e86\u4e0a\u8ff0\u4f5c\u7528\u4ee5\u5916\uff0c\u4e3b\u4ece\u590d\u5236\u8fd8\u662f\u54e8\u5175\u6a21\u5f0f\u548c\u96c6\u7fa4\u6a21\u5f0f\u80fd\u591f\u5b9e\u65bd\u7684\u57fa\u7840\uff0c\u56e0\u6b64\u8bf4\u4e3b\u4ece\u590d\u5236\u662fRedis\u9ad8\u53ef\u7528\u7684\u57fa\u77f3\u3002<\/li>\n<\/ul>\n<h3 id=\"\u4e3b\u4ece\u6a21\u5f0f\u7f3a\u70b9\">\u4e3b\u4ece\u6a21\u5f0f\u7f3a\u70b9<\/h3>\n<ul>\n<li>\u4e00\u65e6\u4e3b\u8282\u70b9\u5b95\u673a\uff0c\u4ece\u8282\u70b9\u664b\u5347\u6210\u4e3b\u8282\u70b9\uff0c\u540c\u65f6\u9700\u8981\u4fee\u6539\u5e94\u7528\u65b9\u7684\u4e3b\u8282\u70b9\u5730\u5740\uff0c\u8fd8\u9700\u8981\u547d\u4ee4\u6240\u6709\u4ece\u8282\u70b9\u53bb\u590d\u5236\u65b0\u7684\u4e3b\u8282\u70b9\uff0c\u6574\u4e2a\u8fc7\u7a0b\u9700\u8981\u4eba\u5de5\u5e72\u9884\u3002<\/li>\n<li>\u4e3b\u8282\u70b9\u7684\u5199\u80fd\u529b\u53d7\u5230\u5355\u673a\u7684\u9650\u5236\u3002<\/li>\n<li>\u4e3b\u8282\u70b9\u7684\u5b58\u50a8\u80fd\u529b\u53d7\u5230\u5355\u673a\u7684\u9650\u5236\u3002<\/li>\n<\/ul>\n<h2 id=\"\u54e8\u5175\u6a21\u5f0f\">\u54e8\u5175\u6a21\u5f0f<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/redis2.png\" alt=\"img\"><\/p>\n<h3 id=\"\u54e8\u5175\u6a21\u5f0f\u4f18\u70b9\">\u54e8\u5175\u6a21\u5f0f\u4f18\u70b9<\/h3>\n<ul>\n<li>\u54e8\u5175\u6a21\u5f0f\u662f\u57fa\u4e8e\u4e3b\u4ece\u6a21\u5f0f\u7684\uff0c\u6240\u6709\u4e3b\u4ece\u7684\u4f18\u70b9\uff0c\u54e8\u5175\u6a21\u5f0f\u90fd\u5177\u6709\u3002<\/li>\n<li>\u4e3b\u4ece\u53ef\u4ee5\u81ea\u52a8\u5207\u6362\uff0c\u7cfb\u7edf\u66f4\u5065\u58ee\uff0c\u53ef\u7528\u6027\u66f4\u9ad8\u3002<\/li>\n<li>Sentinel \u4f1a\u4e0d\u65ad\u7684\u68c0\u67e5 \u4e3b\u670d\u52a1\u5668 \u548c \u4ece\u670d\u52a1\u5668 \u662f\u5426\u6b63\u5e38\u8fd0\u884c\u3002<\/li>\n<li>\u5f53\u88ab\u76d1\u63a7\u7684\u67d0\u4e2a Redis \u670d\u52a1\u5668\u51fa\u73b0\u95ee\u9898\uff0cSentinel \u901a\u8fc7API\u811a\u672c\u5411\u7ba1\u7406\u5458\u6216\u8005\u5176\u4ed6\u7684\u5e94\u7528\u7a0b\u5e8f\u53d1\u9001\u901a\u77e5\u3002<\/li>\n<\/ul>\n<h3 id=\"\u54e8\u5175\u6a21\u5f0f\u7f3a\u70b9\">\u54e8\u5175\u6a21\u5f0f\u7f3a\u70b9<\/h3>\n<ul>\n<li>Redis\u8f83\u96be\u652f\u6301\u5728\u7ebf\u6269\u5bb9\uff0c\u5bf9\u4e8e\u96c6\u7fa4\uff0c\u5bb9\u91cf\u8fbe\u5230\u4e0a\u9650\u65f6\u5728\u7ebf\u6269\u5bb9\u4f1a\u53d8\u5f97\u5f88\u590d\u6742\u3002<\/li>\n<li>\u4e3b\u4ece\u5207\u6362\u65f6\uff0c\u4f1a\u6709\u77ac\u65ad\u60c5\u51b5<\/li>\n<\/ul>\n<h2 id=\"\u96c6\u7fa4\u6a21\u5f0f\">\u96c6\u7fa4\u6a21\u5f0f<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/redis3.png\" alt=\"img\"><\/p>\n<h3 id=\"\u96c6\u7fa4\u6a21\u5f0f\u4f18\u70b9\">\u96c6\u7fa4\u6a21\u5f0f\u4f18\u70b9<\/h3>\n<ul>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u662f\u57fa\u4e8e\u4e3b\u4ece\u6a21\u5f0f\u7684\uff0c\u6240\u6709\u4e3b\u4ece\u7684\u4f18\u70b9\uff0c\u96c6\u7fa4\u6a21\u5f0f\u90fd\u5177\u6709\u3002<\/li>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u652f\u6301\u5728\u7ebf\u6269\u5bb9\uff0c\u901a\u8fc7\u589e\u52a0\u8282\u70b9\u6765\u63d0\u5347\u96c6\u7fa4\u7684\u5bb9\u91cf\u548c\u5904\u7406\u80fd\u529b\u3002<\/li>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u652f\u6301\u5206\u5e03\u5f0f\uff0c\u6570\u636e\u53ef\u4ee5\u5206\u5e03\u5230\u591a\u4e2a\u8282\u70b9\u4e0a\uff0c\u4e0d\u5b58\u5728\u5355\u70b9\u6545\u969c\u3002<\/li>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u652f\u6301\u5bb9\u9519\uff0c\u5f53\u67d0\u4e2a\u8282\u70b9\u51fa\u73b0\u6545\u969c\u65f6\uff0c\u96c6\u7fa4\u4ecd\u7136\u53ef\u4ee5\u6b63\u5e38\u63d0\u4f9b\u670d\u52a1\u3002<\/li>\n<\/ul>\n<h3 id=\"\u96c6\u7fa4\u6a21\u5f0f\u7f3a\u70b9\">\u96c6\u7fa4\u6a21\u5f0f\u7f3a\u70b9<\/h3>\n<ul>\n<li>\u5355\u4e2a\u8282\u70b9\u7684\u4e3b\u4ece\u5207\u6362\uff0c\u4ecd\u4f1a\u6709\u77ac\u65ad\u60c5\u51b5\u3002<\/li>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u9700\u8981\u4f9d\u8d56\u5916\u90e8\u7684\u670d\u52a1\u53d1\u73b0\u7ec4\u4ef6\uff0c\u5982Zookeeper\uff0cConsul\u3002<\/li>\n<li>\u96c6\u7fa4\u6a21\u5f0f\u9700\u8981\u505a\u590d\u6742\u7684\u914d\u7f6e\uff0c\u5982\u4e3b\u4ece\u590d\u5236\u7684\u914d\u7f6e\uff0c\u8bfb\u5199\u5206\u79bb\u7684\u914d\u7f6e\u7b49\u3002<\/li>\n<\/ul>\n<p>\u53c2\u8003: <a href=\"https:\/\/juejin.cn\/post\/6844904191236767751\">https:\/\/juejin.cn\/post\/6844904191236767751<\/a><\/p>"},{"title":"redis \u7f13\u5b58\u96ea\u5d29\u3001\u7a7f\u900f\u3001\u51fb\u7a7f","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E7%BC%93%E5%AD%98%E9%9B%AA%E5%B4%A9%E7%A9%BF%E9%80%8F%E5%87%BB%E7%A9%BF\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis-%E7%BC%93%E5%AD%98%E9%9B%AA%E5%B4%A9%E7%A9%BF%E9%80%8F%E5%87%BB%E7%A9%BF\/","description":"<h2 id=\"\u7f13\u5b58\u7684\u4f7f\u7528\">\u7f13\u5b58\u7684\u4f7f\u7528<\/h2>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u67e5\u8be2\u7f13\u5b58<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u4ece\u6570\u636e\u5e93\u67e5\u8be2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5230redis<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Set<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">30<\/span><span class=\"o\">*<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Minute<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u4e09\u4e2a\u95ee\u9898\">\u4e09\u4e2a\u95ee\u9898<\/h2>\n<h3 id=\"\u7f13\u5b58\u51fb\u7a7f\">\u7f13\u5b58\u51fb\u7a7f<\/h3>\n<ol>\n<li>\u70edkey\u7a81\u7136\u8fc7\u671f\uff0c\u5927\u91cf\u8bf7\u6c42\u6253\u5230\u6570\u636e\u5e93<\/li>\n<li>\u51b7key\u7a81\u7136\u53d8\u70edkey\uff0c\u8fc7\u671f\u540e\u5927\u91cf\u8bf7\u6c42\u6253\u5230\u6570\u636e\u5e93<\/li>\n<\/ol>\n<h3 id=\"\u7f13\u5b58\u96ea\u5d29\">\u7f13\u5b58\u96ea\u5d29<\/h3>\n<ol>\n<li>\u5927\u91cfkey\u96c6\u4e2d\u8fc7\u671f\uff0c\u8bf7\u6c42\u5168\u90e8\u6253\u5230\u6570\u636e\u5e93<\/li>\n<li>redis \u670d\u52a1\u5668\u5b95\u673a\uff0c\u5927\u91cf\u8bf7\u6c42\u6253\u5230\u6570\u636e\u5e93<\/li>\n<\/ol>\n<h3 id=\"\u7f13\u5b58\u7a7f\u900f\">\u7f13\u5b58\u7a7f\u900f<\/h3>\n<ol>\n<li>\u7f13\u5b58\u548c\u6570\u636e\u5e93\u4e2d\u90fd\u6ca1\u6709\uff0c\u5927\u91cf\u8bf7\u6c42\u6253\u5230\u6570\u636e\u5e93\uff08\u6076\u610f\u653b\u51fb\uff09\uff08\u6bd4\u5982id\u4e3a\u8d1f\u6216id\u5de8\u5927\uff09<\/li>\n<\/ol>\n<h2 id=\"\u89e3\u51b3\u65b9\u6848\">\u89e3\u51b3\u65b9\u6848<\/h2>\n<h3 id=\"\u7f13\u5b58\u51fb\u7a7f-1\">\u7f13\u5b58\u51fb\u7a7f<\/h3>\n<ol>\n<li>\u6c38\u4e0d\u8fc7\u671f<\/li>\n<\/ol>\n<ul>\n<li>\u70edkey\u6c38\u4e0d\u8fc7\u671f<\/li>\n<li>\u51b7key\u5148\u5b9a\u65f6\u8fc7\u671f\uff0c\u76d1\u63a7\u8bbf\u95ee\u91cf\u5230\u67d0\u4e2a\u6570\u91cf\u65f6\uff0c\u8bbe\u7f6e\u6c38\u4e0d\u8fc7\u671f<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>\u52a0\u9501\u6392\u961f<\/li>\n<\/ol>\n<ul>\n<li>\u7f13\u5b58\u8fc7\u671f\u540e\uff0c\u5bf9\u4e8e\u5927\u91cf\u8bf7\u6c42\uff0c\u4f7f\u7528\u5206\u5e03\u5f0f\u9501\uff0c\u4fdd\u8bc1\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53bb\u67e5\u8be2\u6570\u636e\u5e93\u7136\u540e\u91cd\u7f6e\u7f13\u5b58\uff0c\u5176\u4ed6\u7ebf\u7a0b\u7b49\u5f85\u4ece\u7f13\u5b58\u4e2d\u67e5\u8be2\u3002<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u67e5\u8be2\u7f13\u5b58<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u52a0\u9501\u6392\u961f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Lock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Unlock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u518d\u6b21\u67e5\u8be2\u7f13\u5b58(\u9632\u6b62\u4e0a\u4e00\u4e2a\u62a2\u5230\u9501\u7684\u7ebf\u7a0b\u5df2\u7ecf\u91cd\u7f6e\u4e86\u7f13\u5b58)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u4ece\u6570\u636e\u5e93\u67e5\u8be2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5230redis<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Set<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">30<\/span><span class=\"o\">*<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Minute<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u7f13\u5b58\u96ea\u5d29-1\">\u7f13\u5b58\u96ea\u5d29<\/h3>\n<ol>\n<li>\u968f\u673a\u8fc7\u671f\u65f6\u95f4<\/li>\n<\/ol>\n<ul>\n<li>\u968f\u673a\u8bbe\u7f6e\u7f13\u5b58\u8fc7\u671f\u65f6\u95f4\uff0c\u907f\u514d\u96c6\u4e2d\u8fc7\u671f\u3002<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u67e5\u8be2\u7f13\u5b58<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u52a0\u9501\u6392\u961f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Lock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Unlock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u518d\u6b21\u67e5\u8be2\u7f13\u5b58(\u9632\u6b62\u4e0a\u4e00\u4e2a\u62a2\u5230\u9501\u7684\u7ebf\u7a0b\u5df2\u7ecf\u91cd\u7f6e\u4e86\u7f13\u5b58)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u4ece\u6570\u636e\u5e93\u67e5\u8be2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5230redis, \u968f\u673a\u8fc7\u671f\u65f6\u95f4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">expire<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Duration<\/span><span class=\"p\">(<\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Intn<\/span><span class=\"p\">(<\/span><span class=\"mi\">30<\/span><span class=\"o\">*<\/span><span class=\"mi\">60<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Second<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Set<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">expire<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>redis \u9ad8\u53ef\u7528\uff08\u89e3\u51b3\u670d\u52a1\u5668\u5b95\u673a\uff09<\/li>\n<\/ol>\n<ul>\n<li>\u96c6\u7fa4\u3001\u54e8\u5175\u6a21\u5f0f\u3001\u4e3b\u4ece\u6a21\u5f0f\u3001\u5bb9\u707e\u5907\u4efd<\/li>\n<\/ul>\n<h3 id=\"\u7f13\u5b58\u7a7f\u900f-1\">\u7f13\u5b58\u7a7f\u900f<\/h3>\n<ol>\n<li>\u53c2\u6570\u6821\u9a8c\uff08\u4e0d\u80fd\u5b8c\u5168\u675c\u7edd\uff09<\/li>\n<\/ol>\n<ul>\n<li>\u5bf9\u4e8e\u67e5\u8be2\u53c2\u6570\uff0c\u505a\u5fc5\u8981\u7684\u6821\u9a8c\uff0c\u6bd4\u5982id\u662f\u5426\u5408\u6cd5\uff0c\u957f\u5ea6\u662f\u5426\u5408\u6cd5\u7b49\u3002<\/li>\n<\/ul>\n<ol start=\"2\">\n<li>\u7f13\u5b58\u7a7a\u503c<\/li>\n<\/ol>\n<ul>\n<li>\u5bf9\u4e8e\u67e5\u8be2\u4e0d\u5230\u7684\u6570\u636e\uff0c\u8bbe\u7f6e\u4e00\u4e2a\u7a7a\u503c\u5230\u7f13\u5b58\uff0c\u907f\u514d\u9891\u7e41\u67e5\u8be2\u6570\u636e\u5e93\u3002<\/li>\n<\/ul>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"kt\">string<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5148\u67e5\u8be2\u7f13\u5b58<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">redis<\/span><span class=\"p\">.<\/span><span class=\"nx\">Nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u52a0\u9501\u6392\u961f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Lock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Unlock<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u518d\u6b21\u67e5\u8be2\u7f13\u5b58(\u9632\u6b62\u4e0a\u4e00\u4e2a\u62a2\u5230\u9501\u7684\u7ebf\u7a0b\u5df2\u7ecf\u91cd\u7f6e\u4e86\u7f13\u5b58)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Get<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">).<\/span><span class=\"nf\">Result<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">value<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5931\u6548\uff0c\u4ece\u6570\u636e\u5e93\u67e5\u8be2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetData<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">==<\/span><span class=\"w\"> <\/span><span class=\"nx\">db<\/span><span class=\"p\">.<\/span><span class=\"nx\">ErrDataNotFound<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u7a7a\u503c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Set<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">30<\/span><span class=\"o\">*<\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Minute<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7f13\u5b58\u5230redis, \u968f\u673a\u8fc7\u671f\u65f6\u95f4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">expire<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nf\">Duration<\/span><span class=\"p\">(<\/span><span class=\"nx\">rand<\/span><span class=\"p\">.<\/span><span class=\"nf\">Intn<\/span><span class=\"p\">(<\/span><span class=\"mi\">30<\/span><span class=\"o\">*<\/span><span class=\"mi\">60<\/span><span class=\"p\">))<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"w\"> <\/span><span class=\"nx\">time<\/span><span class=\"p\">.<\/span><span class=\"nx\">Second<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">redisClient<\/span><span class=\"p\">.<\/span><span class=\"nf\">Set<\/span><span class=\"p\">(<\/span><span class=\"nx\">key<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">expire<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"nx\">data<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\"> <\/span><span class=\"k\">else<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u5e03\u9686\u8fc7\u6ee4\u5668\uff08\u9ed1\u767d\u540d\u5355\uff09<\/li>\n<\/ol>\n<ul>\n<li>\u5bf9\u4e8e\u67e5\u8be2\u7684\u4e0d\u5b58\u5728id\uff0c\u653e\u5230\u5e03\u9686\u8fc7\u6ee4\u5668\u4e2d\uff0c\u9ed1\u540d\u5355\uff0c\u4e0d\u901a\u8fc7\u3002<\/li>\n<li>\u5bf9\u4e8e\u67e5\u8be2\u7684\u5b58\u5728id\uff0c\u653e\u5230\u5e03\u9686\u8fc7\u6ee4\u5668\u4e2d\uff0c\u767d\u540d\u5355\uff0c\u901a\u8fc7\u3002<\/li>\n<\/ul>"},{"title":"redis\u6570\u636e\u6301\u4e45\u5316","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85%E5%8C%96\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/redis%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85%E5%8C%96\/","description":"<h2 id=\"1-redis-\u6301\u4e45\u5316\u7684\u76ee\u7684\">1. Redis \u6301\u4e45\u5316\u7684\u76ee\u7684<\/h2>\n<p>Redis \u662f\u4e00\u6b3e\u57fa\u4e8e\u5185\u5b58\u7684\u952e\u503c\u5b58\u50a8\u7cfb\u7edf\uff0c\u8fd9\u610f\u5473\u7740\u5b83\u7684\u6240\u6709\u6570\u636e\u90fd\u5b58\u50a8\u5728 RAM \u4e2d\uff0c\u8bfb\u5199\u901f\u5ea6\u6781\u5feb\u3002\u7136\u800c\uff0c\u4e00\u65e6 Redis \u8fdb\u7a0b\u56e0\u6545\u5b95\u673a\u6216\u670d\u52a1\u5668\u91cd\u542f\uff0c\u5185\u5b58\u4e2d\u7684\u6570\u636e\u5c31\u4f1a\u5168\u90e8\u4e22\u5931\u3002\u6301\u4e45\u5316\u7684\u76ee\u7684\u5c31\u662f\u5c06\u5185\u5b58\u4e2d\u7684\u6570\u636e\u4fdd\u5b58\u5230\u786c\u76d8\u4e0a\uff0c\u786e\u4fdd\u5728 Redis \u91cd\u542f\u540e\u80fd\u591f\u6062\u590d\u5230\u5b95\u673a\u524d\u7684\u72b6\u6001\uff0c\u4ece\u800c\u4fdd\u969c\u6570\u636e\u7684\u53ef\u9760\u6027\u3002<\/p>\n<h2 id=\"2-rdb-redis-database-\u6301\u4e45\u5316\">2. RDB (Redis Database) \u6301\u4e45\u5316<\/h2>\n<p>RDB \u662f Redis \u9ed8\u8ba4\u7684\u6301\u4e45\u5316\u65b9\u5f0f\uff0c\u5b83\u662f\u4e00\u79cd\u5feb\u7167\uff08snapshot\uff09\u6301\u4e45\u5316\u3002<\/p>\n<p><strong>\u6838\u5fc3\u539f\u7406\uff1a<\/strong><\/p>\n<ul>\n<li>RDB \u4f1a\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u95f4\u9694\u5185\uff0c\u5c06 Redis \u5728\u5185\u5b58\u4e2d\u7684\u6240\u6709\u6570\u636e\u4ee5\u4e8c\u8fdb\u5236\u6587\u4ef6\u7684\u5f62\u5f0f\u5199\u5165\u786c\u76d8\u3002\u8fd9\u4e2a\u6587\u4ef6\u901a\u5e38\u547d\u540d\u4e3a <code>dump.rdb<\/code>\u3002\u6574\u4e2a\u8fc7\u7a0b\u53ef\u4ee5\u7406\u89e3\u4e3a\u5bf9 Redis \u5185\u5b58\u6570\u636e\u505a\u4e86\u4e00\u6b21\u5168\u91cf\u5907\u4efd\u3002<\/li>\n<\/ul>\n<p><strong>\u5de5\u4f5c\u6d41\u7a0b\uff1a<\/strong><\/p>\n<ul>\n<li>Redis \u7236\u8fdb\u7a0b\u63a5\u6536\u5230 <code>BGSAVE<\/code> \u547d\u4ee4\uff08\u624b\u52a8\u6267\u884c\u6216\u914d\u7f6e\u89e6\u53d1\uff09\u3002<\/li>\n<li>\u7236\u8fdb\u7a0b\u4f1a\u8c03\u7528 <code>fork()<\/code> \u521b\u5efa\u4e00\u4e2a\u5b50\u8fdb\u7a0b\u3002<\/li>\n<li><code>fork()<\/code> \u4e4b\u540e\uff0c\u7236\u8fdb\u7a0b\u7ee7\u7eed\u5904\u7406\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\uff0c\u800c\u5b50\u8fdb\u7a0b\u5219\u8d1f\u8d23\u5c06\u5185\u5b58\u4e2d\u7684\u6570\u636e\u5199\u5165\u4e34\u65f6\u7684 RDB \u6587\u4ef6\u3002\u5728 <code>fork()<\/code> \u7684\u77ac\u95f4\uff0c\u5b50\u8fdb\u7a0b\u4f1a\u548c\u7236\u8fdb\u7a0b\u5171\u4eab\u5185\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u91c7\u7528\u4e86\u5199\u65f6\u590d\u5236\uff08Copy-On-Write, COW\uff09\u673a\u5236\u3002\u8fd9\u610f\u5473\u7740\u5f53\u7236\u8fdb\u7a0b\u9700\u8981\u4fee\u6539\u67d0\u4e2a\u6570\u636e\u65f6\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u5148\u5c06\u8fd9\u90e8\u5206\u6570\u636e\u590d\u5236\u4e00\u4efd\uff0c\u7136\u540e\u7236\u8fdb\u7a0b\u5728\u65b0\u590d\u5236\u7684\u6570\u636e\u4e0a\u8fdb\u884c\u4fee\u6539\uff0c\u800c\u5b50\u8fdb\u7a0b\u7ee7\u7eed\u4f7f\u7528\u65e7\u7684\u6570\u636e\u8fdb\u884c\u6301\u4e45\u5316\u3002<\/li>\n<li>RDB \u6587\u4ef6\u5199\u5165\u5b8c\u6210\u540e\uff0c\u5b50\u8fdb\u7a0b\u4f1a\u7528\u65b0\u7684 RDB \u6587\u4ef6\u66ff\u6362\u6389\u65e7\u7684 <code>dump.rdb<\/code> \u6587\u4ef6\uff0c\u5e76\u5411\u7236\u8fdb\u7a0b\u53d1\u9001\u4fe1\u53f7\uff0c\u7236\u8fdb\u7a0b\u5f97\u77e5\u540e\u5373\u53ef\u5220\u9664\u65e7\u6587\u4ef6\u3002<\/li>\n<\/ul>\n<p><strong>\u4f18\u70b9\uff1a<\/strong><\/p>\n<ul>\n<li>\u6570\u636e\u6062\u590d\u5feb\uff1aRDB \u6587\u4ef6\u662f\u7ecf\u8fc7\u538b\u7f29\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\uff0c\u975e\u5e38\u7d27\u51d1\uff0c\u6062\u590d\u65f6\u76f4\u63a5\u52a0\u8f7d\u5230\u5185\u5b58\u5373\u53ef\uff0c\u901f\u5ea6\u8fdc\u8d85 AOF\u3002<\/li>\n<li>\u5bf9\u7236\u8fdb\u7a0b\u5f71\u54cd\u5c0f\uff1a\u6301\u4e45\u5316\u7531\u5b50\u8fdb\u7a0b\u5b8c\u6210\uff0c\u7236\u8fdb\u7a0b\u51e0\u4e4e\u4e0d\u963b\u585e\uff0c\u53ef\u4ee5\u7ee7\u7eed\u54cd\u5e94\u8bf7\u6c42\u3002<\/li>\n<li>\u9002\u5408\u5907\u4efd\uff1aRDB \u6587\u4ef6\u662f\u4e00\u4e2a\u5355\u4e00\u7684\u7d27\u51d1\u6587\u4ef6\uff0c\u975e\u5e38\u9002\u5408\u8fdb\u884c\u5f02\u5730\u5907\u4efd\u3002<\/li>\n<\/ul>\n<p><strong>\u7f3a\u70b9\uff1a<\/strong><\/p>\n<ul>\n<li>\u53ef\u80fd\u4e22\u5931\u6570\u636e\uff1aRDB \u662f\u5b9a\u65f6\u5feb\u7167\uff0c\u5982\u679c\u5728\u4e24\u6b21\u5feb\u7167\u4e4b\u95f4 Redis \u5b95\u673a\uff0c\u8fd9\u671f\u95f4\u7684\u6570\u636e\u5c31\u4f1a\u4e22\u5931\u3002\u4f8b\u5982\uff0c\u4f60\u914d\u7f6e\u6bcf 5 \u5206\u949f\u505a\u4e00\u6b21\u5feb\u7167\uff0c\u5982\u679c Redis \u5728\u7b2c 4 \u5206\u949f\u5b95\u673a\uff0c\u4f60\u5c06\u4e22\u5931\u8fd9 4 \u5206\u949f\u7684\u6240\u6709\u6570\u636e\u3002<\/li>\n<li><code>fork()<\/code> \u6027\u80fd\u95ee\u9898\uff1a\u5f53\u6570\u636e\u91cf\u5de8\u5927\u65f6\uff0c<code>fork()<\/code> \u5b50\u8fdb\u7a0b\u9700\u8981\u6d88\u8017\u4e00\u5b9a\u7684\u65f6\u95f4\uff0c\u53ef\u80fd\u5bfc\u81f4\u77ed\u6682\u7684\u963b\u585e\u3002<\/li>\n<\/ul>\n<h2 id=\"3-aof-append-only-file-\u6301\u4e45\u5316\">3. AOF (Append Only File) \u6301\u4e45\u5316<\/h2>\n<p>AOF \u662f\u4e00\u79cd\u589e\u91cf\u5f0f\u7684\u6301\u4e45\u5316\u65b9\u5f0f\u3002<\/p>"},{"title":"rpc & kitex","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/rpc-kitex\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/rpc-kitex\/","description":"<h2 id=\"\u4ec0\u4e48\u662frpc\">\u4ec0\u4e48\u662fRPC<\/h2>\n<p>RPC\uff08Remote Procedure Call Protocol\uff09\u5373\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\u534f\u8bae\u3002<br>\n<strong>\u901a\u4fd7\u63cf\u8ff0<\/strong>\uff1a\u5ba2\u6237\u7aef\u65e0\u9700\u4e86\u89e3\u5e95\u5c42\u5b9e\u73b0\u7ec6\u8282\uff0c\u5373\u53ef\u50cf\u8c03\u7528\u672c\u5730\u51fd\u6570\u4e00\u6837\u8c03\u7528\u8fdc\u7a0b\u670d\u52a1\u5668\u4e0a\u7684\u670d\u52a1\u3002<br>\n<strong>\u6b63\u5f0f\u5b9a\u4e49<\/strong>\uff1a\u4e00\u79cd\u901a\u8fc7\u7f51\u7edc\u900f\u660e\u5730\u8bf7\u6c42\u8fdc\u7a0b\u670d\u52a1\u7684\u534f\u8bae\uff0c\u5c4f\u853d\u4e86\u7f51\u7edc\u901a\u4fe1\u7684\u590d\u6742\u6027\u3002<\/p>\n<h2 id=\"rpc\u7684\u6838\u5fc3\u4f18\u52bf\">RPC\u7684\u6838\u5fc3\u4f18\u52bf<\/h2>\n<ul>\n<li><strong>\u5e95\u5c42\u62bd\u8c61<\/strong>\uff1a\u5c01\u88c5\u7f51\u7edc\u901a\u4fe1\u7ec6\u8282\uff08\u5982\u8fde\u63a5\u7ba1\u7406\u3001\u6570\u636e\u4f20\u8f93\uff09\uff0c\u4e13\u6ce8\u4e1a\u52a1\u903b\u8f91\u5f00\u53d1\u3002<\/li>\n<li><strong>\u8de8\u8bed\u8a00\u517c\u5bb9<\/strong>\uff1a\u652f\u6301\u591a\u8bed\u8a00\u6df7\u5408\u5f00\u53d1\uff08\u5982Go\u5ba2\u6237\u7aef\u8c03\u7528Java\u670d\u52a1\u7aef\uff09\u3002<\/li>\n<li><strong>\u9ad8\u6027\u80fd\u901a\u4fe1<\/strong>\uff1a\u901a\u8fc7\u4e8c\u8fdb\u5236\u534f\u8bae\uff08\u5982Protobuf\uff09\u548c\u9ad8\u6548\u4f20\u8f93\u5c42\uff08\u5982HTTP\/2\uff09\uff0c\u6027\u80fd\u4f18\u4e8e\u4f20\u7edfRESTful\u63a5\u53e3\u3002<\/li>\n<\/ul>\n<h2 id=\"rpc-\u7684\u5b9e\u73b0\u65b9\u5f0f\u5bf9\u6bd4\">RPC \u7684\u5b9e\u73b0\u65b9\u5f0f\u5bf9\u6bd4<\/h2>\n<table>\n <thead>\n <tr>\n <th>\u5b9e\u73b0\u65b9\u5f0f<\/th>\n <th>\u5178\u578b\u6846\u67b6<\/th>\n <th>\u6838\u5fc3\u7279\u70b9<\/th>\n <th>\u9002\u7528\u573a\u666f<\/th>\n <\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><strong>\u57fa\u4e8e Socket<\/strong><\/td>\n <td>Thrift\u3001Dubbo<\/td>\n <td>\u624b\u52a8\u63a7\u5236\u5e8f\u5217\u5316\u4e0e\u7f51\u7edc\u5c42\uff0c\u6027\u80fd\u6781\u9ad8\u4f46\u5f00\u53d1\u590d\u6742<\/td>\n <td>\u9ad8\u6027\u80fd\u573a\u666f\uff08\u5982\u91d1\u878d\u3001IM\uff09<\/td>\n <\/tr>\n <tr>\n <td><strong>\u57fa\u4e8e HTTP<\/strong><\/td>\n <td>gRPC\u3001RESTful<\/td>\n <td>\u5229\u7528HTTP\u751f\u6001\uff0cgRPC\u57fa\u4e8eHTTP\/2+Protobuf\u5b9e\u73b0\u9ad8\u6027\u80fd<\/td>\n <td>\u901a\u7528\u573a\u666f\u3001\u8de8\u8bed\u8a00\u4ea4\u4e92<\/td>\n <\/tr>\n <tr>\n <td><strong>\u57fa\u4e8e\u6d88\u606f\u961f\u5217<\/strong><\/td>\n <td>Apache Kafka\u3001RabbitMQ<\/td>\n <td>\u5f02\u6b65\u89e3\u8026\uff0c\u901a\u8fc7\u6d88\u606f\u4f20\u9012\u5b9e\u73b0\u975e\u963b\u585e\u8c03\u7528\uff08\u4e25\u683c\u610f\u4e49\u5c5e\u5f02\u6b65\u901a\u4fe1\u800c\u975eRPC\uff09<\/td>\n <td>\u9ad8\u5e76\u53d1\u3001\u6700\u7ec8\u4e00\u81f4\u6027\u573a\u666f<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n<h2 id=\"grpc-\u7b80\u4ecb\">gRPC \u7b80\u4ecb<\/h2>\n<p>gRPC \u662f Google \u5f00\u6e90\u7684\u9ad8\u6027\u80fd RPC \u6846\u67b6\uff0c\u6838\u5fc3\u7279\u6027\u5305\u62ec\uff1a<\/p>\n<ul>\n<li><strong>HTTP\/2 \u5e95\u5c42<\/strong>\uff1a\u652f\u6301\u591a\u8def\u590d\u7528\u3001\u6d41\u6a21\u5f0f\uff08\u5355\u5411\/\u53cc\u5411\uff09\u3002<\/li>\n<li><strong>Protobuf \u5e8f\u5217\u5316<\/strong>\uff1a\u6570\u636e\u538b\u7f29\u7387\u9ad8\u3001\u53cd\u5e8f\u5217\u5316\u901f\u5ea6\u5feb\u3002<\/li>\n<li><strong>\u591a\u8bed\u8a00\u652f\u6301<\/strong>\uff1a\u539f\u751f\u652f\u6301Go\u3001Java\u3001Python\u7b49\u4e3b\u6d41\u8bed\u8a00\u3002<\/li>\n<\/ul>\n<h2 id=\"kitex-\u662f\u4ec0\u4e48\">Kitex \u662f\u4ec0\u4e48<\/h2>\n<p>Kitex \u662f\u5b57\u8282\u8df3\u52a8\u5f00\u6e90\u7684 <strong>Go \u5fae\u670d\u52a1 RPC \u6846\u67b6<\/strong>\uff0c\u4e13\u4e3a\u4e91\u539f\u751f\u573a\u666f\u8bbe\u8ba1\uff1a<\/p>\n<ol>\n<li><strong>\u9ad8\u6027\u80fd<\/strong>\uff1a\u57fa\u4e8e\u81ea\u7814Netpoll\u7f51\u7edc\u5e93\uff0cQPS\u53ef\u8fbe\u767e\u4e07\u7ea7\uff0c\u5ef6\u8fdf\u4f4e\u4e8e1ms\u3002<\/li>\n<li><strong>\u5168\u94fe\u8def\u6cbb\u7406<\/strong>\uff1a\u5185\u7f6e\u670d\u52a1\u53d1\u73b0\uff08\u652f\u6301ETCD\/Consul\uff09\u3001\u8d1f\u8f7d\u5747\u8861\u3001\u7194\u65ad\u9650\u6d41\u3002<\/li>\n<li><strong>\u7075\u6d3b\u6269\u5c55<\/strong>\uff1a\u901a\u8fc7\u63d2\u4ef6\u673a\u5236\u652f\u6301\u81ea\u5b9a\u4e49\u534f\u8bae\u3001\u4e2d\u95f4\u4ef6\uff08\u5982\u94fe\u8def\u8ffd\u8e2a\u3001\u76d1\u63a7\uff09\u3002<\/li>\n<li><strong>\u591a\u534f\u8bae\u517c\u5bb9<\/strong>\uff1a\u539f\u751f\u652f\u6301Thrift\/Protobuf\uff0c\u517c\u5bb9gRPC\u534f\u8bae\u3002<\/li>\n<\/ol>\n<h2 id=\"kitex-\u5feb\u901f\u5165\u95e8\">Kitex \u5feb\u901f\u5165\u95e8<\/h2>\n<h3 id=\"1-\u73af\u5883\u51c6\u5907\">1. \u73af\u5883\u51c6\u5907<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u5b89\u88c5 Kitex \u547d\u4ee4\u884c\u5de5\u5177<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\">go get -u github.com\/cloudwego\/kitex\/cmd\/kitex@latest\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"2-\u5b9a\u4e49\u670d\u52a1\u63a5\u53e3protobuf\u793a\u4f8b\">2. \u5b9a\u4e49\u670d\u52a1\u63a5\u53e3\uff08Protobuf\u793a\u4f8b\uff09<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-protobuf\" data-lang=\"protobuf\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ hello.proto\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">syntax<\/span> <span class=\"o\">=<\/span> <span class=\"s\">&#34;proto3&#34;<\/span><span class=\"p\">;<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span> <span class=\"nn\">hello<\/span><span class=\"p\">;<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">service<\/span> <span class=\"n\">Hello<\/span> <span class=\"p\">{<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"k\">rpc<\/span> <span class=\"n\">SayHello<\/span><span class=\"p\">(<\/span><span class=\"n\">Request<\/span><span class=\"p\">)<\/span> <span class=\"k\">returns<\/span> <span class=\"p\">(<\/span><span class=\"n\">Response<\/span><span class=\"p\">)<\/span> <span class=\"p\">{}<\/span> <span class=\"c1\">\/\/ \u5b9a\u4e49\u8fdc\u7a0b\u65b9\u6cd5\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">message<\/span> <span class=\"nc\">Request<\/span> <span class=\"p\">{<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"kt\">string<\/span> <span class=\"n\">name<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ \u8bf7\u6c42\u53c2\u6570\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">message<\/span> <span class=\"nc\">Response<\/span> <span class=\"p\">{<\/span><span class=\"err\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"kt\">string<\/span> <span class=\"kd\">message<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span> <span class=\"c1\">\/\/ \u54cd\u5e94\u7ed3\u679c\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"err\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"3-\u751f\u6210\u4ee3\u7801\">3. \u751f\u6210\u4ee3\u7801<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-shell\" data-lang=\"shell\"><span class=\"line\"><span class=\"cl\">kitex -name hello -proto .\/hello.proto -dst .\/kitex_gen <span class=\"c1\"># \u751f\u6210\u670d\u52a1\u4ee3\u7801<\/span>\n<\/span><\/span><\/code><\/pre><\/div><h3 id=\"4-\u7f16\u5199\u670d\u52a1\u7aef\">4. \u7f16\u5199\u670d\u52a1\u7aef<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ server\/main.go<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;context&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;log&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;net&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;kitex_gen\/hello&#34;<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u81ea\u52a8\u751f\u6210\u7684\u4ee3\u7801\u5305<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;kitex_gen\/hello\/helloimpl&#34;<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u670d\u52a1\u5b9e\u73b0\u5305<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5b9e\u73b0\u670d\u52a1\u63a5\u53e3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">HelloServiceImpl<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"nx\">s<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">HelloServiceImpl<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"nf\">SayHello<\/span><span class=\"p\">(<\/span><span class=\"nx\">ctx<\/span><span class=\"w\"> <\/span><span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nx\">Context<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">req<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nx\">Request<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nx\">Response<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kt\">error<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">return<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nx\">Response<\/span><span class=\"p\">{<\/span><span class=\"nx\">Message<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;Hello &#34;<\/span><span class=\"w\"> <\/span><span class=\"o\">+<\/span><span class=\"w\"> <\/span><span class=\"nx\">req<\/span><span class=\"p\">.<\/span><span class=\"nx\">Name<\/span><span class=\"p\">},<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u670d\u52a1\u7aef\uff0c\u6307\u5b9a\u5730\u5740\u548c\u5904\u7406\u5668<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">svr<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloServer<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">helloimpl<\/span><span class=\"p\">.<\/span><span class=\"nx\">HelloServiceImpl<\/span><span class=\"p\">{},<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithServiceAddr<\/span><span class=\"p\">(<\/span><span class=\"nx\">net<\/span><span class=\"p\">.<\/span><span class=\"nf\">JoinHostPort<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;127.0.0.1&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;8888&#34;<\/span><span class=\"p\">)),<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u7ed1\u5b9a\u5730\u5740<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u542f\u52a8\u670d\u52a1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">svr<\/span><span class=\"p\">.<\/span><span class=\"nf\">Run<\/span><span class=\"p\">();<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fatalf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Server exited with error: %v&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"5-\u7f16\u5199\u5ba2\u6237\u7aef\">5. \u7f16\u5199\u5ba2\u6237\u7aef<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ client\/main.go<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;context&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;log&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;kitex_gen\/hello&#34;<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u81ea\u52a8\u751f\u6210\u7684\u4ee3\u7801\u5305<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u521d\u59cb\u5316\u5ba2\u6237\u7aef\uff0c\u6307\u5b9a\u670d\u52a1\u540d\u548c\u5730\u5740<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">cli<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloClient<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"s\">&#34;hello-service&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u670d\u52a1\u540d\uff08\u9700\u4e0e\u670d\u52a1\u7aef\u4e00\u81f4\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithHostPorts<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;127.0.0.1:8888&#34;<\/span><span class=\"p\">),<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u76ee\u6807\u5730\u5740<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fatalf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Client initialization failed: %v&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"c1\">\/\/ \u8c03\u7528\u8fdc\u7a0b\u65b9\u6cd5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">resp<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">cli<\/span><span class=\"p\">.<\/span><span class=\"nf\">SayHello<\/span><span class=\"p\">(<\/span><span class=\"nx\">context<\/span><span class=\"p\">.<\/span><span class=\"nf\">Background<\/span><span class=\"p\">(),<\/span><span class=\"w\"> <\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nx\">Request<\/span><span class=\"p\">{<\/span><span class=\"nx\">Name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;Kitex&#34;<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t\t<\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Fatalf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;RPC call failed: %v&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">log<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Response:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">resp<\/span><span class=\"p\">.<\/span><span class=\"nx\">Message<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8f93\u51fa\uff1aResponse: Hello Kitex<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u8fdb\u9636\u7279\u6027\u751f\u4ea7\u73af\u5883\u5efa\u8bae\">\u8fdb\u9636\u7279\u6027\uff08\u751f\u4ea7\u73af\u5883\u5efa\u8bae\uff09<\/h2>\n<h3 id=\"1-\u670d\u52a1\u6cbb\u7406\u914d\u7f6e\">1. \u670d\u52a1\u6cbb\u7406\u914d\u7f6e<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u542f\u7528 ETCD \u6ce8\u518c\u4e2d\u5fc3<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">etcd<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/kitex-contrib\/registry-etcd&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">resolver<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">etcd<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewResolver<\/span><span class=\"p\">([]<\/span><span class=\"kt\">string<\/span><span class=\"p\">{<\/span><span class=\"s\">&#34;etcd-server:2379&#34;<\/span><span class=\"p\">})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">svr<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloServer<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">helloimpl<\/span><span class=\"p\">.<\/span><span class=\"nx\">HelloServiceImpl<\/span><span class=\"p\">{},<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithRegistry<\/span><span class=\"p\">(<\/span><span class=\"nx\">resolver<\/span><span class=\"p\">),<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6ce8\u518c\u670d\u52a1\u5230 ETCD<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5ba2\u6237\u7aef\u8d1f\u8f7d\u5747\u8861<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">cli<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloClient<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;hello-service&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithLoadBalancer<\/span><span class=\"p\">(<\/span><span class=\"nx\">p2c<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewBalancer<\/span><span class=\"p\">()),<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5e73\u6ed1\u52a0\u6743\u8d1f\u8f7d\u5747\u8861<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"2-\u89c2\u6d4b\u6027\u652f\u6301\">2. \u89c2\u6d4b\u6027\u652f\u6301<\/h3>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u96c6\u6210 OpenTelemetry \u94fe\u8def\u8ffd\u8e2a<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;go.opentelemetry.io\/otel&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">kitexotel<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/kitex-contrib\/otel&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u670d\u52a1\u7aef\u6dfb\u52a0\u8ffd\u8e2a\u4e2d\u95f4\u4ef6<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">svr<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloServer<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">helloimpl<\/span><span class=\"p\">.<\/span><span class=\"nx\">HelloServiceImpl<\/span><span class=\"p\">{},<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithMiddleware<\/span><span class=\"p\">(<\/span><span class=\"nx\">kitexotel<\/span><span class=\"p\">.<\/span><span class=\"nf\">ServerMiddleware<\/span><span class=\"p\">(<\/span><span class=\"nx\">otel<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetTracerProvider<\/span><span class=\"p\">())),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ \u5ba2\u6237\u7aef\u6dfb\u52a0\u6307\u6807\u76d1\u63a7<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nx\">cli<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewHelloClient<\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"s\">&#34;hello-service&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">hello<\/span><span class=\"p\">.<\/span><span class=\"nf\">WithClientOption<\/span><span class=\"p\">(<\/span><span class=\"nx\">kitexotel<\/span><span class=\"p\">.<\/span><span class=\"nf\">ClientMiddleware<\/span><span class=\"p\">(<\/span><span class=\"nx\">otel<\/span><span class=\"p\">.<\/span><span class=\"nf\">GetTracerProvider<\/span><span class=\"p\">())),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u5b98\u65b9\u6587\u6863\uff1a<a href=\"https:\/\/www.cloudwego.io\/zh\/docs\/kitex\/\">https:\/\/www.cloudwego.io\/zh\/docs\/kitex\/<\/a><\/p>"},{"title":"sync.map","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/sync.map\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/sync.map\/","description":"<h2 id=\"syncmap\">sync.Map<\/h2>\n<p>sync.Map \u662f Go \u8bed\u8a00\u6807\u51c6\u5e93\u4e2d\u63d0\u4f9b\u7684\u5e76\u53d1\u5b89\u5168\u7684 Map \u7c7b\u578b\uff0c\u5b83\u9002\u7528\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\u3002\u4ee5\u4e0b\u662f sync.Map \u7684\u4e00\u4e9b\u5173\u952e\u539f\u7406\uff1a<\/p>\n<ol>\n<li><strong>\u8bfb\u5199\u5206\u79bb<\/strong>\uff1async.Map \u901a\u8fc7\u8bfb\u5199\u5206\u79bb\u6765\u63d0\u5347\u6027\u80fd\u3002\u5b83\u5185\u90e8\u7ef4\u62a4\u4e86\u4e24\u79cd\u6570\u636e\u7ed3\u6784\uff1a\u4e00\u4e2a\u53ea\u8bfb\u7684\u53ea\u8bfb\u5b57\u5178 (read)\uff0c\u4e00\u4e2a\u8bfb\u5199\u5b57\u5178 (dirty)\u3002\u8bfb\u64cd\u4f5c\u4f18\u5148\u8bbf\u95ee\u53ea\u8bfb\u5b57\u5178\uff0c\u53ea\u6709\u5728\u53ea\u8bfb\u5b57\u5178\u4e2d\u627e\u4e0d\u5230\u6570\u636e\u65f6\u624d\u4f1a\u8bbf\u95ee\u8bfb\u5199\u5b57\u5178\u3002<\/li>\n<li><strong>\u5ef6\u8fdf\u5199\u5165<\/strong>\uff1a\u5199\u64cd\u4f5c\u5e76\u4e0d\u7acb\u5373\u66f4\u65b0\u53ea\u8bfb\u5b57\u5178(read)\uff0c\u800c\u662f\u66f4\u65b0\u8bfb\u5199\u5b57\u5178 (dirty)\u3002\u53ea\u6709\u5728\u8bfb\u64cd\u4f5c\u53d1\u73b0\u53ea\u8bfb\u5b57\u5178\u7684\u6570\u636e\u8fc7\u65f6\uff08\u5373 misses \u8ba1\u6570\u5668\u8d85\u8fc7\u9608\u503c\uff09\u65f6\uff0c\u624d\u4f1a\u5c06\u8bfb\u5199\u5b57\u5178\u4e2d\u7684\u6570\u636e\u540c\u6b65\u5230\u53ea\u8bfb\u5b57\u5178\u3002\u8fd9\u79cd\u7b56\u7565\u51cf\u5c11\u4e86\u5199\u64cd\u4f5c\u5bf9\u8bfb\u64cd\u4f5c\u7684\u5f71\u54cd\u3002<\/li>\n<li><strong>\u539f\u5b50\u64cd\u4f5c<\/strong>\uff1a\u8bfb\u64cd\u4f5c\u5927\u90e8\u5206\u662f\u65e0\u9501\u7684\uff0c\u56e0\u4e3a\u5b83\u4eec\u4e3b\u8981\u8bbf\u95ee\u53ea\u8bfb\u7684 read map\uff0c\u5e76\u901a\u8fc7\u539f\u5b50\u64cd\u4f5c (atomic.Value) \u6765\u4fdd\u62a4\u8bfb\u64cd\u4f5c\uff1b\u5199\u64cd\u4f5c\u4f1a\u52a0\u9501\uff08\u4f7f\u7528 sync.Mutex\uff09\u4fdd\u62a4\u5199\u64cd\u4f5c\uff0c\u4ee5\u786e\u4fdd\u5bf9 dirty map \u7684\u5e76\u53d1\u5b89\u5168 \uff0c\u786e\u4fdd\u9ad8\u5e76\u53d1\u73af\u5883\u4e0b\u7684\u5b89\u5168\u6027\u3002<\/li>\n<li><strong>\u6761\u76ee\u6dd8\u6c70<\/strong>\uff1a\u5f53\u4e00\u4e2a\u6761\u76ee\u88ab\u5220\u9664\u65f6\uff0c\u5b83\u53ea\u4ece\u8bfb\u5199\u5b57\u5178\u4e2d\u5220\u9664\u3002\u53ea\u6709\u5728\u4e0b\u4e00\u6b21\u6570\u636e\u540c\u6b65\u65f6\uff0c\u8be5\u6761\u76ee\u624d\u4f1a\u4ece\u53ea\u8bfb\u5b57\u5178\u4e2d\u5220\u9664\u3002\n\u901a\u8fc7\u8fd9\u79cd\u8bbe\u8ba1\uff0csync.Map \u5728\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\u4e0b\u80fd\u591f\u63d0\u4f9b\u8f83\u9ad8\u7684\u6027\u80fd\uff0c\u540c\u65f6\u4fdd\u8bc1\u5e76\u53d1\u5b89\u5168\u3002<\/li>\n<\/ol>\n<h2 id=\"syncmap\u7684\u9501\u673a\u5236\u8ddf\u4f60\u81ea\u5df1\u7528\u9501\u52a0\u4e0amap\u6709\u533a\u522b\u4e48\">sync.map\u7684\u9501\u673a\u5236\u8ddf\u4f60\u81ea\u5df1\u7528\u9501\u52a0\u4e0amap\u6709\u533a\u522b\u4e48<\/h2>\n<p>sync.Map \u7684\u9501\u673a\u5236\u548c\u81ea\u5df1\u4f7f\u7528\u9501\uff08\u5982 sync.Mutex \u6216 sync.RWMutex\uff09\u52a0\u4e0a map \u7684\u65b9\u5f0f\u6709\u4e00\u4e9b\u5173\u952e\u533a\u522b\uff1a<\/p>\n<h3 id=\"\u81ea\u5df1\u4f7f\u7528\u9501\u548c-map\">\u81ea\u5df1\u4f7f\u7528\u9501\u548c map<\/h3>\n<ol>\n<li>\u5168\u5c40\u9501\uff1a\n<ul>\n<li>\u4f60\u9700\u8981\u81ea\u5df1\u7ba1\u7406\u9501\uff0c\u901a\u5e38\u662f\u4e00\u4e2a\u5168\u5c40\u7684 sync.Mutex \u6216 sync.RWMutex\u3002<\/li>\n<li>\u5bf9\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\uff0c\u4f7f\u7528 sync.RWMutex \u53ef\u4ee5\u5141\u8bb8\u591a\u4e2a\u8bfb\u64cd\u4f5c\u540c\u65f6\u8fdb\u884c\uff0c\u4f46\u5199\u64cd\u4f5c\u4f9d\u7136\u4f1a\u963b\u585e\u6240\u6709\u8bfb\u64cd\u4f5c\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u624b\u52a8\u5904\u7406\uff1a\n<ul>\n<li>\u4f60\u9700\u8981\u81ea\u5df1\u7f16\u5199\u4ee3\u7801\u6765\u5904\u7406\u52a0\u9501\u3001\u89e3\u9501\u3001\u8bfb\u5199\u64cd\u4f5c\u3002<\/li>\n<li>\u9519\u8bef\u4f7f\u7528\u9501\u53ef\u80fd\u5bfc\u81f4\u6b7b\u9501\u3001\u7ade\u6001\u6761\u4ef6\u7b49\u95ee\u9898\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u7b80\u5355\u76f4\u89c2\uff1a\n<ul>\n<li>\u5b9e\u73b0\u7b80\u5355\uff0c\u5bb9\u6613\u7406\u89e3\u548c\u8c03\u8bd5\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3 id=\"syncmap-1\">sync.Map<\/h3>\n<ol>\n<li>\u8bfb\u5199\u5206\u79bb\uff1a\n<ul>\n<li>sync.Map \u5185\u90e8\u4f7f\u7528\u8bfb\u5199\u5206\u79bb\u7684\u7b56\u7565\uff0c\u901a\u8fc7\u53ea\u8bfb\u548c\u8bfb\u5199\u4e24\u4e2a map \u63d0\u9ad8\u8bfb\u64cd\u4f5c\u7684\u6027\u80fd\u3002<\/li>\n<li>\u8bfb\u64cd\u4f5c\u5927\u90e8\u5206\u60c5\u51b5\u4e0b\u662f\u65e0\u9501\u7684\uff0c\u53ea\u6709\u5728\u53ea\u8bfb map \u4e2d\u627e\u4e0d\u5230\u6570\u636e\u65f6\uff0c\u624d\u4f1a\u52a0\u9501\u8bbf\u95ee\u8bfb\u5199 map\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u5ef6\u8fdf\u5199\u5165\uff1a\n<ul>\n<li>\u5199\u64cd\u4f5c\u66f4\u65b0\u8bfb\u5199 map\uff08dirty\uff09\uff0c\u4f46\u4e0d\u4f1a\u7acb\u5373\u66f4\u65b0\u53ea\u8bfb map\uff08read\uff09\u3002\u53ea\u6709\u5f53\u8bfb\u64cd\u4f5c\u53d1\u73b0\u53ea\u8bfb map \u4e2d\u7684\u6570\u636e\u8fc7\u65f6\u65f6\uff0c\u624d\u4f1a\u5c06\u8bfb\u5199 map \u7684\u6570\u636e\u540c\u6b65\u5230\u53ea\u8bfb map \u4e2d\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u5185\u7f6e\u4f18\u5316\uff1a\n<ul>\n<li>sync.Map \u5185\u90e8\u6709\u5404\u79cd\u4f18\u5316\u63aa\u65bd\uff0c\u5982\u539f\u5b50\u64cd\u4f5c\u3001\u5ef6\u8fdf\u5199\u5165\u7b49\uff0c\u4f7f\u5f97\u5b83\u5728\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\u4e0b\u6027\u80fd\u66f4\u9ad8\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"\u533a\u522b\u603b\u7ed3\">\u533a\u522b\u603b\u7ed3<\/h2>\n<ul>\n<li>\u5e76\u53d1\u6027\u80fd\uff1async.Map \u901a\u8fc7\u8bfb\u5199\u5206\u79bb\u548c\u5ef6\u8fdf\u5199\u5165\u5728\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\u4e0b\u63d0\u4f9b\u66f4\u9ad8\u7684\u5e76\u53d1\u6027\u80fd\uff0c\u800c\u4f7f\u7528\u5168\u5c40\u9501\u7684 map \u5728\u8bfb\u5199\u9891\u7e41\u65f6\u6027\u80fd\u8f83\u4f4e\u3002<\/li>\n<li>\u590d\u6742\u6027\u548c\u6613\u7528\u6027\uff1async.Map \u5c01\u88c5\u4e86\u590d\u6742\u7684\u5e76\u53d1\u63a7\u5236\u903b\u8f91\uff0c\u4f7f\u7528\u8d77\u6765\u66f4\u7b80\u5355\uff0c\u800c\u81ea\u5df1\u7ba1\u7406\u9501\u548c map \u9700\u8981\u5904\u7406\u66f4\u591a\u7684\u5e76\u53d1\u63a7\u5236\u7ec6\u8282\u3002<\/li>\n<li>\u9002\u7528\u573a\u666f\uff1async.Map \u9002\u7528\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u573a\u666f\uff0c\u800c\u4f7f\u7528\u5168\u5c40\u9501\u7684 map \u9002\u7528\u4e8e\u8bfb\u5199\u64cd\u4f5c\u8f83\u5747\u8861\u6216\u8005\u5bf9\u6027\u80fd\u8981\u6c42\u4e0d\u9ad8\u7684\u573a\u666f\u3002<\/li>\n<\/ul>\n<p>\u5982\u679c\u4f60\u7684\u5e94\u7528\u573a\u666f\u662f\u8bfb\u591a\u5199\u5c11\u4e14\u5bf9\u6027\u80fd\u8981\u6c42\u8f83\u9ad8\uff0csync.Map \u4f1a\u662f\u4e00\u4e2a\u66f4\u597d\u7684\u9009\u62e9\u3002\u800c\u5bf9\u4e8e\u7b80\u5355\u7684\u5e76\u53d1\u8bbf\u95ee\u63a7\u5236\uff0c\u4f7f\u7528 sync.Mutex \u6216 sync.RWMutex \u52a0\u4e0a map \u4e5f\u53ef\u4ee5\u6ee1\u8db3\u9700\u6c42\u3002<\/p>"},{"title":"tcp \u4e09\u6b21\u63e1\u624b\u4e0e\u56db\u6b21\u6325\u624b","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/tcp-%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E4%B8%8E%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/tcp-%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B%E4%B8%8E%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B\/","description":"<h2 id=\"\u4e09\u6b21\u63e1\u624b\">\u4e09\u6b21\u63e1\u624b<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/tcp1.png\" alt=\"img\"><\/p>\n<ul>\n<li>\u4e00\u6b21\u63e1\u624b:\u5ba2\u6237\u7aef\u53d1\u9001\u5e26\u6709 SYN\uff08seq=x\uff09 \u6807\u5fd7\u7684\u6570\u636e\u5305 -&gt; \u670d\u52a1\u7aef\uff0c\u7136\u540e\u5ba2\u6237\u7aef\u8fdb\u5165 SYN_SEND \u72b6\u6001\uff0c\u7b49\u5f85\u670d\u52a1\u7aef\u7684\u786e\u8ba4\uff1b<\/li>\n<li>\u4e8c\u6b21\u63e1\u624b:\u670d\u52a1\u7aef\u53d1\u9001\u5e26\u6709 SYN+ACK(seq=y,ack=x+1) \u6807\u5fd7\u7684\u6570\u636e\u5305 \u2013&gt; \u5ba2\u6237\u7aef,\u7136\u540e\u670d\u52a1\u7aef\u8fdb\u5165 SYN_RECV \u72b6\u6001\uff1b<\/li>\n<li>\u4e09\u6b21\u63e1\u624b:\u5ba2\u6237\u7aef\u53d1\u9001\u5e26\u6709 ACK(ack=y+1) \u6807\u5fd7\u7684\u6570\u636e\u5305 \u2013&gt; \u670d\u52a1\u7aef\uff0c\u7136\u540e\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u90fd\u8fdb\u5165ESTABLISHED \u72b6\u6001\uff0c\u5b8c\u6210 TCP \u4e09\u6b21\u63e1\u624b\u3002<\/li>\n<\/ul>\n<p>\u4e3a\u4ec0\u4e48\u8981\u4e09\u6b21\u63e1\u624b\uff1f<\/p>\n<ol>\n<li>\u7b2c\u4e00\u6b21\u63e1\u624b\uff1aClient \u4ec0\u4e48\u90fd\u4e0d\u80fd\u786e\u8ba4\uff1bServer \u786e\u8ba4\u4e86\u5bf9\u65b9\u53d1\u9001\u6b63\u5e38\uff0c\u81ea\u5df1\u63a5\u6536\u6b63\u5e38<\/li>\n<li>\u7b2c\u4e8c\u6b21\u63e1\u624b\uff1aClient \u786e\u8ba4\u4e86\uff1a\u81ea\u5df1\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38\uff0c\u5bf9\u65b9\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38\uff1bServer \u786e\u8ba4\u4e86\uff1a\u5bf9\u65b9\u53d1\u9001\u6b63\u5e38\uff0c\u81ea\u5df1\u63a5\u6536\u6b63\u5e38<\/li>\n<li>\u7b2c\u4e09\u6b21\u63e1\u624b\uff1aClient \u786e\u8ba4\u4e86\uff1a\u81ea\u5df1\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38\uff0c\u5bf9\u65b9\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38\uff1bServer \u786e\u8ba4\u4e86\uff1a\u81ea\u5df1\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38\uff0c\u5bf9\u65b9\u53d1\u9001\u3001\u63a5\u6536\u6b63\u5e38<\/li>\n<\/ol>\n<h2 id=\"\u56db\u6b21\u6325\u624b\">\u56db\u6b21\u6325\u624b<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/tcp2.png\" alt=\"img\"><\/p>\n<ul>\n<li>\u7b2c\u4e00\u6b21\u6325\u624b\uff1a\u5ba2\u6237\u7aef\u53d1\u9001\u4e00\u4e2a FIN\uff08seq=x\uff09 \u6807\u5fd7\u7684\u6570\u636e\u5305-&gt;\u670d\u52a1\u7aef\uff0c\u7528\u6765\u5173\u95ed\u5ba2\u6237\u7aef\u5230\u670d\u52a1\u7aef\u7684\u6570\u636e\u4f20\u9001\u3002\u7136\u540e\u5ba2\u6237\u7aef\u8fdb\u5165 FIN-WAIT-1 \u72b6\u6001\u3002<\/li>\n<li>\u7b2c\u4e8c\u6b21\u6325\u624b\uff1a\u670d\u52a1\u7aef\u6536\u5230\u8fd9\u4e2a FIN\uff08seq=X\uff09 \u6807\u5fd7\u7684\u6570\u636e\u5305\uff0c\u5b83\u53d1\u9001\u4e00\u4e2a ACK \uff08ack=x+1\uff09\u6807\u5fd7\u7684\u6570\u636e\u5305-&gt;\u5ba2\u6237\u7aef \u3002\u7136\u540e\u670d\u52a1\u7aef\u8fdb\u5165 CLOSE-WAIT \u72b6\u6001\uff0c\u5ba2\u6237\u7aef\u8fdb\u5165 FIN-WAIT-2 \u72b6\u6001\u3002<\/li>\n<li>\u7b2c\u4e09\u6b21\u6325\u624b\uff1a\u670d\u52a1\u7aef\u53d1\u9001\u4e00\u4e2a FIN (seq=y)\u6807\u5fd7\u7684\u6570\u636e\u5305-&gt;\u5ba2\u6237\u7aef\uff0c\u8bf7\u6c42\u5173\u95ed\u8fde\u63a5\uff0c\u7136\u540e\u670d\u52a1\u7aef\u8fdb\u5165 LAST-ACK \u72b6\u6001\u3002<\/li>\n<li>\u7b2c\u56db\u6b21\u6325\u624b\uff1a\u5ba2\u6237\u7aef\u53d1\u9001 ACK (ack=y+1)\u6807\u5fd7\u7684\u6570\u636e\u5305-&gt;\u670d\u52a1\u7aef\uff0c\u7136\u540e\u5ba2\u6237\u7aef\u8fdb\u5165TIME-WAIT\u72b6\u6001\uff0c\u670d\u52a1\u7aef\u5728\u6536\u5230 ACK (ack=y+1)\u6807\u5fd7\u7684\u6570\u636e\u5305\u540e\u8fdb\u5165 CLOSE \u72b6\u6001\u3002\u6b64\u65f6\u5982\u679c\u5ba2\u6237\u7aef\u7b49\u5f85 2MSL \u540e\u4f9d\u7136\u6ca1\u6709\u6536\u5230\u56de\u590d\uff0c\u5c31\u8bc1\u660e\u670d\u52a1\u7aef\u5df2\u6b63\u5e38\u5173\u95ed\uff0c\u968f\u540e\u5ba2\u6237\u7aef\u4e5f\u53ef\u4ee5\u5173\u95ed\u8fde\u63a5\u4e86\u3002<\/li>\n<\/ul>\n<p>\u4e3a\u4ec0\u4e48\u8981\u56db\u6b21\u6325\u624b\uff1f<\/p>\n<ol>\n<li>\u7b2c\u4e00\u6b21\u6325\u624b\uff1aA \u8bf4\u201c\u6211\u6ca1\u5565\u8981\u8bf4\u7684\u4e86\u201d<\/li>\n<li>\u7b2c\u4e8c\u6b21\u6325\u624b\uff1aB \u56de\u7b54\u201c\u6211\u77e5\u9053\u4e86\u201d\uff0c\u4f46\u662f B \u53ef\u80fd\u8fd8\u4f1a\u6709\u8981\u8bf4\u7684\u8bdd\uff0cA \u4e0d\u80fd\u8981\u6c42 B \u8ddf\u7740\u81ea\u5df1\u7684\u8282\u594f\u7ed3\u675f\u901a\u8bdd<\/li>\n<li>\u7b2c\u4e09\u6b21\u6325\u624b\uff1a\u4e8e\u662f B \u53ef\u80fd\u53c8\u5df4\u62c9\u5df4\u62c9\u8bf4\u4e86\u4e00\u901a\uff0c\u6700\u540e B \u8bf4\u201c\u6211\u8bf4\u5b8c\u4e86\u201d<\/li>\n<li>\u7b2c\u56db\u6b21\u6325\u624b\uff1aA \u56de\u7b54\u201c\u77e5\u9053\u4e86\u201d\uff0c\u8fd9\u6837\u901a\u8bdd\u624d\u7b97\u7ed3\u675f\u3002<\/li>\n<\/ol>\n<p>time_wait \u7684\u4f5c\u7528?<\/p>"},{"title":"websocket \u7406\u8bba\u4e0e\u5b9e\u8df5","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/websocket-%E7%90%86%E8%AE%BA%E4%B8%8E%E5%AE%9E%E8%B7%B5\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/websocket-%E7%90%86%E8%AE%BA%E4%B8%8E%E5%AE%9E%E8%B7%B5\/","description":"<h2 id=\"\u4ec0\u4e48\u662fwebsocket\">\u4ec0\u4e48\u662fWebSocket<\/h2>\n<p>WebSocket\u662f\u4e00\u79cd\u901a\u4fe1\u534f\u8bae\uff0c\u5b83\u662fHTML5\u5f00\u59cb\u63d0\u4f9b\u7684\u4e00\u79cd\u534f\u8bae\u3002\u5b83\u5b9e\u73b0\u4e86\u6d4f\u89c8\u5668\u4e0e\u670d\u52a1\u5668\u5168\u53cc\u5de5\u901a\u4fe1\uff0c\u5141\u8bb8\u670d\u52a1\u7aef\u4e3b\u52a8\u5411\u5ba2\u6237\u7aef\u63a8\u9001\u6570\u636e\u3002<\/p>\n<h2 id=\"websocket\u7684\u4f18\u52a3\">WebSocket\u7684\u4f18\u52a3<\/h2>\n<h3 id=\"\u4f18\u70b9\">\u4f18\u70b9<\/h3>\n<ul>\n<li>\u5b9e\u65f6\u6027\uff1aWebSocket\u534f\u8bae\u662f\u57fa\u4e8eTCP\u534f\u8bae\u7684\uff0c\u5b83\u5b9e\u73b0\u4e86\u6d4f\u89c8\u5668\u4e0e\u670d\u52a1\u5668\u5168\u53cc\u5de5\u901a\u4fe1\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5b9e\u65f6\u901a\u4fe1\u3002<\/li>\n<li>\u53cc\u5411\u901a\u4fe1\uff1aWebSocket\u534f\u8bae\u652f\u6301\u53cc\u5411\u901a\u4fe1\uff0c\u5373\u670d\u52a1\u5668\u548c\u5ba2\u6237\u7aef\u90fd\u53ef\u4ee5\u4e3b\u52a8\u53d1\u9001\u6d88\u606f\u3002<\/li>\n<li>\u8f7b\u91cf\u7ea7\uff1aWebSocket\u534f\u8bae\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u5360\u7528\u7cfb\u7edf\u8d44\u6e90\u5c0f\uff0c\u901a\u4fe1\u901f\u5ea6\u5feb\u3002<\/li>\n<li>\u517c\u5bb9\u6027\uff1aWebSocket\u534f\u8bae\u517c\u5bb9\u4e3b\u6d41\u6d4f\u89c8\u5668\uff0c\u53ef\u4ee5\u8fd0\u884c\u5728PC\u3001\u79fb\u52a8\u8bbe\u5907\u3001\u670d\u52a1\u5668\u7b49\u591a\u79cd\u73af\u5883\u3002<\/li>\n<\/ul>\n<h3 id=\"\u7f3a\u70b9\">\u7f3a\u70b9<\/h3>\n<ul>\n<li>\u5b89\u5168\u6027\uff1aWebSocket\u534f\u8bae\u6ca1\u6709\u52a0\u5bc6\u673a\u5236\uff0c\u5bb9\u6613\u906d\u53d7\u4e2d\u95f4\u4eba\u653b\u51fb\u3002<\/li>\n<li>\u517c\u5bb9\u6027\uff1aWebSocket\u534f\u8bae\u517c\u5bb9\u6027\u4e0d\u5982HTTP\u534f\u8bae\u3002<\/li>\n<\/ul>\n<h2 id=\"websocket\u7684\u5e94\u7528\u573a\u666f\">WebSocket\u7684\u5e94\u7528\u573a\u666f<\/h2>\n<ul>\n<li>\u5b9e\u65f6\u901a\u4fe1\uff1aWebSocket\u534f\u8bae\u53ef\u4ee5\u7528\u4e8e\u5b9e\u65f6\u901a\u4fe1\uff0c\u5982\u804a\u5929\u3001\u6e38\u620f\u3001\u76f4\u64ad\u7b49\u3002<\/li>\n<li>\u7269\u8054\u7f51\uff1aWebSocket\u534f\u8bae\u53ef\u4ee5\u7528\u4e8e\u7269\u8054\u7f51\u8bbe\u5907\u7684\u901a\u4fe1\uff0c\u5982\u667a\u80fd\u5bb6\u5c45\u3001\u667a\u80fd\u8f66\u673a\u7b49\u3002<\/li>\n<li>\u79fb\u52a8\u5e94\u7528\uff1aWebSocket\u534f\u8bae\u53ef\u4ee5\u7528\u4e8e\u79fb\u52a8\u5e94\u7528\u7684\u5b9e\u65f6\u901a\u4fe1\uff0c\u5982\u5373\u65f6\u901a\u8baf\u3001\u5728\u7ebf\u89c6\u9891\u804a\u5929\u7b49\u3002<\/li>\n<li>\u4e91\u8ba1\u7b97\uff1aWebSocket\u534f\u8bae\u53ef\u4ee5\u7528\u4e8e\u4e91\u8ba1\u7b97\u670d\u52a1\u7684\u5b9e\u65f6\u901a\u4fe1\uff0c\u5982\u4e91\u6e38\u620f\u3001\u4e91\u89c6\u8baf\u7b49\u3002<\/li>\n<\/ul>\n<h2 id=\"websocket\u7684\u6d41\u7a0b\">WebSocket\u7684\u6d41\u7a0b<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/websocket.png\" alt=\"img\">\nfrom \u5c0f\u767dDebug<\/p>\n<h2 id=\"websocket\u7684go\u8bed\u8a00\u5b9e\u73b0\">WebSocket\u7684go\u8bed\u8a00\u5b9e\u73b0<\/h2>\n<ol>\n<li>\u5b89\u88c5gorilla\/websocket\u5e93<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>go get -u github.com\/gorilla\/websocket\n<\/code><\/pre><ol start=\"2\">\n<li>\u670d\u52a1\u5668\u7aef\u4ee3\u7801<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;net\/http&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/gorilla\/websocket&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">upgrader<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nx\">websocket<\/span><span class=\"p\">.<\/span><span class=\"nx\">Upgrader<\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ReadBufferSize<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1024<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">WriteBufferSize<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1024<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">clients<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">map<\/span><span class=\"p\">[<\/span><span class=\"o\">*<\/span><span class=\"nx\">websocket<\/span><span class=\"p\">.<\/span><span class=\"nx\">Conn<\/span><span class=\"p\">]<\/span><span class=\"kt\">bool<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8fde\u63a5\u7684\u5ba2\u6237\u7aef<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">broadcast<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">chan<\/span><span class=\"w\"> <\/span><span class=\"nx\">Message<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5e7f\u64ad\u901a\u9053<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Message<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">Username<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;username&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">Text<\/span><span class=\"w\"> <\/span><span class=\"kt\">string<\/span><span class=\"w\"> <\/span><span class=\"s\">`json:&#34;text&#34;`<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">handleConnections<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">ResponseWriter<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"w\"> <\/span><span class=\"o\">*<\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nx\">Request<\/span><span class=\"p\">)<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5347\u7ea7HTTP\u8fde\u63a5\u4e3aWebSocket\u8fde\u63a5<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">ws<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">upgrader<\/span><span class=\"p\">.<\/span><span class=\"nf\">Upgrade<\/span><span class=\"p\">(<\/span><span class=\"nx\">w<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">r<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">ws<\/span><span class=\"p\">.<\/span><span class=\"nf\">Close<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u6ce8\u518c\u65b0\u7684\u5ba2\u6237\u7aef<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">clients<\/span><span class=\"p\">[<\/span><span class=\"nx\">ws<\/span><span class=\"p\">]<\/span><span class=\"w\"> <\/span><span class=\"p\">=<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"kd\">var<\/span><span class=\"w\"> <\/span><span class=\"nx\">msg<\/span><span class=\"w\"> <\/span><span class=\"nx\">Message<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8bfb\u53d6\u5ba2\u6237\u7aef\u53d1\u9001\u7684\u6d88\u606f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">ws<\/span><span class=\"p\">.<\/span><span class=\"nf\">ReadJSON<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"nx\">msg<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nb\">delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">clients<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">ws<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">break<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c06\u6d88\u606f\u53d1\u9001\u5230\u5e7f\u64ad\u901a\u9053<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">broadcast<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;-<\/span><span class=\"w\"> <\/span><span class=\"nx\">msg<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">handleMessages<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4ece\u5e7f\u64ad\u901a\u9053\u83b7\u53d6\u6d88\u606f<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">msg<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;-<\/span><span class=\"nx\">broadcast<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5c06\u6d88\u606f\u53d1\u9001\u7ed9\u6240\u6709\u8fde\u63a5\u7684\u5ba2\u6237\u7aef<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"nx\">client<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"k\">range<\/span><span class=\"w\"> <\/span><span class=\"nx\">clients<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">client<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteJSON<\/span><span class=\"p\">(<\/span><span class=\"nx\">msg<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">client<\/span><span class=\"p\">.<\/span><span class=\"nf\">Close<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nb\">delete<\/span><span class=\"p\">(<\/span><span class=\"nx\">clients<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">client<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">HandleFunc<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;\/ws&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">handleConnections<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">go<\/span><span class=\"w\"> <\/span><span class=\"nf\">handleMessages<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;WebSocket server started on :8080&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">http<\/span><span class=\"p\">.<\/span><span class=\"nf\">ListenAndServe<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;:8080&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;ListenAndServe: &#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u5ba2\u6237\u7aef\u4ee3\u7801<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kn\">package<\/span><span class=\"w\"> <\/span><span class=\"nx\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kn\">import<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;bufio&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;fmt&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;net\/url&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;os&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;os\/signal&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;syscall&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"s\">&#34;github.com\/gorilla\/websocket&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">func<\/span><span class=\"w\"> <\/span><span class=\"nf\">main<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">interrupt<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">chan<\/span><span class=\"w\"> <\/span><span class=\"nx\">os<\/span><span class=\"p\">.<\/span><span class=\"nx\">Signal<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">signal<\/span><span class=\"p\">.<\/span><span class=\"nf\">Notify<\/span><span class=\"p\">(<\/span><span class=\"nx\">interrupt<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">os<\/span><span class=\"p\">.<\/span><span class=\"nx\">Interrupt<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">syscall<\/span><span class=\"p\">.<\/span><span class=\"nx\">SIGTERM<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">u<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">url<\/span><span class=\"p\">.<\/span><span class=\"nx\">URL<\/span><span class=\"p\">{<\/span><span class=\"nx\">Scheme<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;ws&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">Host<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;localhost:8080&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">Path<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s\">&#34;\/ws&#34;<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Connecting to %s\\n&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">u<\/span><span class=\"p\">.<\/span><span class=\"nf\">String<\/span><span class=\"p\">())<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">websocket<\/span><span class=\"p\">.<\/span><span class=\"nx\">DefaultDialer<\/span><span class=\"p\">.<\/span><span class=\"nf\">Dial<\/span><span class=\"p\">(<\/span><span class=\"nx\">u<\/span><span class=\"p\">.<\/span><span class=\"nf\">String<\/span><span class=\"p\">(),<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;dial:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"p\">.<\/span><span class=\"nf\">Close<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">done<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nb\">make<\/span><span class=\"p\">(<\/span><span class=\"kd\">chan<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"p\">{})<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">go<\/span><span class=\"w\"> <\/span><span class=\"kd\">func<\/span><span class=\"p\">()<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">defer<\/span><span class=\"w\"> <\/span><span class=\"nb\">close<\/span><span class=\"p\">(<\/span><span class=\"nx\">done<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">message<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"p\">.<\/span><span class=\"nf\">ReadMessage<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;read:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Received: %s\\n&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">message<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">scanner<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">bufio<\/span><span class=\"p\">.<\/span><span class=\"nf\">NewScanner<\/span><span class=\"p\">(<\/span><span class=\"nx\">os<\/span><span class=\"p\">.<\/span><span class=\"nx\">Stdin<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">for<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Print<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;Enter message: &#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">scanner<\/span><span class=\"p\">.<\/span><span class=\"nf\">Scan<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">text<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">scanner<\/span><span class=\"p\">.<\/span><span class=\"nf\">Text<\/span><span class=\"p\">()<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">:=<\/span><span class=\"w\"> <\/span><span class=\"nx\">c<\/span><span class=\"p\">.<\/span><span class=\"nf\">WriteMessage<\/span><span class=\"p\">(<\/span><span class=\"nx\">websocket<\/span><span class=\"p\">.<\/span><span class=\"nx\">TextMessage<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"p\">[]<\/span><span class=\"nb\">byte<\/span><span class=\"p\">(<\/span><span class=\"nx\">text<\/span><span class=\"p\">))<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">if<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"w\"> <\/span><span class=\"o\">!=<\/span><span class=\"w\"> <\/span><span class=\"kc\">nil<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;write:&#34;<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"nx\">err<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">select<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">case<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;-<\/span><span class=\"nx\">done<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">case<\/span><span class=\"w\"> <\/span><span class=\"o\">&lt;-<\/span><span class=\"nx\">interrupt<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">fmt<\/span><span class=\"p\">.<\/span><span class=\"nf\">Println<\/span><span class=\"p\">(<\/span><span class=\"s\">&#34;interrupt&#34;<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">return<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><p>\u53c2\u8003\uff1a<a href=\"https:\/\/zhuanlan.zhihu.com\/p\/12482284609\">https:\/\/zhuanlan.zhihu.com\/p\/12482284609<\/a><\/p>"},{"title":"windows or mac on docker","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/windows-or-mac-on-docker\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/windows-or-mac-on-docker\/","description":"<h2 id=\"\u5982\u4f55\u5728linux\u4e0a\u8fd0\u884cwindows\u865a\u62df\u673a\">\u5982\u4f55\u5728linux\u4e0a\u8fd0\u884cwindows\u865a\u62df\u673a<\/h2>\n<p>\u4e4b\u524d\u4e00\u76f4\u4f7f\u7528vmware, \u5c31\u662f\u5b89\u88c5vmware\u6709\u70b9\u7e41\u7410\uff0c\u4f7f\u7528\u4f53\u9a8c\u611f\u8fd8\u4e0d\u9519\u3002<\/p>\n<p>\u6700\u8fd1\u4ece\u670b\u53cb\u90a3\u4e86\u89e3\u5230\u4e00\u4e2a\u66f4\u52a0\u8f7b\u4fbf\u7b80\u5355\u7684\u65b9\u5f0f\u8d77windows\uff0c\u7279\u5206\u4eab\u4e00\u4e0b\uff1a<\/p>\n<p>\u524d\u63d0\uff1a\u80fd\u6b63\u5e38\u4f7f\u7528\u7684docker<\/p>\n<p>\u6b65\u9aa4:<\/p>\n<ol>\n<li>\u62c9\u53d6\u955c\u50cf<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>docker pull dockurr\/windows\n<\/code><\/pre><ol start=\"2\">\n<li>\u65b0\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939wins(\u81ea\u5b9a\u4e49),\u65b0\u5efa\u914d\u7f6e\u6587\u4ef6docker-compose.yaml<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>mkdir wins\ntouch docker-compose.yaml\n<\/code><\/pre><ol start=\"3\">\n<li>\u7f16\u5199docker-compose.yaml<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>vim docker-compose.yaml\n<\/code><\/pre><pre tabindex=\"0\"><code>services:\n windows:\n image: dockurr\/windows\n container_name: windows\n environment:\n VERSION: &#34;11&#34; # windows\u7248\u672c\n RAM_SIZE: &#34;8G&#34; # \u5206\u914d\u5185\u5b58\n CPU_CORES: &#34;8&#34; # \u5206\u914dcpu\u6838\u6570\n devices:\n - \/dev\/kvm\n - \/dev\/net\/tun\n cap_add:\n - NET_ADMIN\n ports:\n - 8006:8006 # http\u7aef\u53e3\n - 3389:3389\/tcp\n - 3389:3389\/udp\n volumes:\n - .\/windows:\/storage\n restart: always\n stop_grace_period: 2m\n<\/code><\/pre><ol start=\"4\">\n<li>\u8fd0\u884cdocker-compose.yaml<\/li>\n<\/ol>\n<pre tabindex=\"0\"><code>docker compose up -d\n<\/code><\/pre><ol start=\"5\">\n<li>\u8bbf\u95ee127.0.0.1:8006, \u7b2c\u4e00\u6b21\u7b49\u5f85windows\u5b89\u88c5<\/li>\n<li>\u5173\u95ed\u7684\u8bdd\u76f4\u63a5\u5173\u95ed\u5bb9\u5668<\/li>\n<\/ol>\n<p>github: <a href=\"https:\/\/github.com\/dockur\/windows\">https:\/\/github.com\/dockur\/windows<\/a>\n\u8fd8\u6709\u4e00\u4e2a\u76f8\u4f3c\u7684macos\uff1a<a href=\"https:\/\/github.com\/dockur\/macos\">https:\/\/github.com\/dockur\/macos<\/a><\/p>"},{"title":"\u4e8b\u52a1\u9694\u79bb\u7ea7\u522b\u7684\u5b9e\u73b0\u539f\u7406","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E4%BA%8B%E5%8A%A1%E9%9A%94%E7%A6%BB%E7%BA%A7%E5%88%AB%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86\/","description":"<p>MySQL \u7684 InnoDB \u5b58\u50a8\u5f15\u64ce\u4e3b\u8981\u901a\u8fc7\u4e24\u79cd\u6838\u5fc3\u673a\u5236\u6765\u5b9e\u73b0\u4e8b\u52a1\u9694\u79bb\uff1aMVCC\uff08\u591a\u7248\u672c\u5e76\u53d1\u63a7\u5236\uff09 \u548c \u9501\uff08Locking\uff09\u3002\u8fd9\u4e24\u8005\u76f8\u4e92\u914d\u5408\uff0c\u5728\u9694\u79bb\u6027\u4e0e\u6027\u80fd\u4e4b\u95f4\u53d6\u5f97\u4e86\u5b8c\u7f8e\u5e73\u8861\u3002<\/p>\n<ul>\n<li>READ UNCOMMITTED\uff1a\u4e0d\u4f7f\u7528 MVCC\uff0c\u4e5f\u4e0d\u4f7f\u7528\u9501\u3002\uff08\u5199\u64cd\u4f5c\u4ecd\u7136\u4f1a\u52a0\u6392\u4ed6\u9501\uff09<\/li>\n<li>READ COMMITTED\uff1a\u4f7f\u7528 MVCC\uff0c\u4f46\u6bcf\u6b21\u8bfb\u90fd\u751f\u6210\u65b0\u89c6\u56fe\u3002<\/li>\n<li>REPEATABLE READ\uff1a\u4f7f\u7528 MVCC\uff0c\u5e76\u4e14\u56fa\u5b9a\u4e86\u8bfb\u89c6\u56fe\u3002\u540c\u65f6\uff0c\u5728\u5f53\u524d\u8bfb\u64cd\u4f5c\u4e2d\uff0c\u8fd8\u4f1a\u4f7f\u7528 Next-Key Lock \u6765\u89e3\u51b3\u5927\u90e8\u5206\u5e7b\u8bfb\u3002<\/li>\n<li>SERIALIZABLE\uff1a\u4e0d\u4f7f\u7528 MVCC\uff0c\u5b8c\u5168\u4f9d\u8d56\u9501\u673a\u5236\uff0c\u5c06\u6240\u6709\u64cd\u4f5c\u4e32\u884c\u5316\u3002<\/li>\n<\/ul>\n<h2 id=\"1-mvcc\">1. MVCC<\/h2>\n<p>MVCC \u662f InnoDB \u5b9e\u73b0 READ COMMITTED \u548c REPEATABLE READ \u7684\u6838\u5fc3\u3002\u5b83\u7684\u57fa\u672c\u601d\u60f3\u662f\uff1a\u4e0d\u901a\u8fc7\u52a0\u9501\u6765\u963b\u585e\u8bfb\u64cd\u4f5c\uff0c\u800c\u662f\u901a\u8fc7\u4fdd\u5b58\u6570\u636e\u884c\u7684\u591a\u4e2a\u7248\u672c\uff0c\u8ba9\u8bfb\u548c\u5199\u53ef\u4ee5\u5e76\u53d1\u8fdb\u884c\u3002<\/p>\n<p><strong>\u5b9e\u73b0\u539f\u7406\uff1a<\/strong><\/p>\n<ul>\n<li>\u9690\u85cf\u5217\uff1aInnoDB \u7684\u6bcf\u884c\u6570\u636e\u90fd\u5305\u542b\u51e0\u4e2a\u9690\u85cf\u5217\uff0c\u5176\u4e2d\u6700\u91cd\u8981\u7684\u662f DB_TRX_ID\uff08\u8bb0\u5f55\u6700\u8fd1\u4e00\u6b21\u4fee\u6539\u8be5\u884c\u7684\u4e8b\u52a1ID\uff09\u548c DB_ROLL_PTR\uff08\u56de\u6eda\u6307\u9488\uff0c\u6307\u5411\u4e0a\u4e00\u7248\u672c\u7684\u8bb0\u5f55\uff09\u3002\u8fd9\u4e9b\u6307\u9488\u5c06\u4e0d\u540c\u7248\u672c\u7684\u6570\u636e\u4e32\u6210\u4e00\u4e2a\u7248\u672c\u94fe\u3002<\/li>\n<li>Read View (\u8bfb\u89c6\u56fe)\uff1a\u5f53\u4e00\u4e2a\u4e8b\u52a1\u6267\u884c\u5feb\u7167\u8bfb\uff08\u5373\u666e\u901a\u7684 SELECT \u8bed\u53e5\uff09\u65f6\uff0cInnoDB \u4f1a\u4e3a\u5b83\u521b\u5efa\u4e00\u4e2a Read View\u3002\u8fd9\u4e2a\u89c6\u56fe\u8bb0\u5f55\u4e86\u5f53\u524d\u6d3b\u8dc3\uff08\u672a\u63d0\u4ea4\uff09\u7684\u4e8b\u52a1 ID \u5217\u8868\u3002<\/li>\n<li>\u53ef\u89c1\u6027\u5224\u65ad\uff1a\u4e8b\u52a1\u5728\u8bfb\u53d6\u6570\u636e\u65f6\uff0c\u4f1a\u6839\u636e\u8fd9\u4e2a Read View\uff0c\u6cbf\u7740\u7248\u672c\u94fe\u4ece\u65b0\u5230\u65e7\u5730\u904d\u5386\uff0c\u76f4\u5230\u627e\u5230\u4e00\u4e2a\u5bf9\u5f53\u524d\u4e8b\u52a1\u53ef\u89c1\u7684\u7248\u672c\u3002<\/li>\n<\/ul>\n<p><strong>MVCC \u5728\u4e0d\u540c\u9694\u79bb\u7ea7\u522b\u4e0b\u7684\u5e94\u7528\uff1a<\/strong><\/p>\n<ul>\n<li>READ COMMITTED\uff1a\u6bcf\u6b21\u6267\u884c SELECT \u8bed\u53e5\u65f6\uff0c\u90fd\u4f1a\u91cd\u65b0\u751f\u6210\u4e00\u4e2a Read View\u3002\u56e0\u6b64\uff0c\u5b83\u80fd\u591f\u8bfb\u53d6\u5230\u6700\u65b0\u5df2\u63d0\u4ea4\u7684\u6570\u636e\uff0c\u4f46\u4f1a\u5bfc\u81f4\u4e0d\u53ef\u91cd\u590d\u8bfb\u3002<\/li>\n<li>REPEATABLE READ\uff1a\u53ea\u5728\u4e8b\u52a1\u7b2c\u4e00\u6b21\u6267\u884c SELECT \u65f6\u751f\u6210\u4e00\u4e2a Read View\uff0c\u5e76\u5c06\u5176\u56fa\u5b9a\u4e0b\u6765\u3002\u540e\u7eed\u7684 SELECT \u90fd\u4f7f\u7528\u8fd9\u4e2a\u56fa\u5b9a\u7684\u89c6\u56fe\u3002\u8fd9\u662f\u5b83\u89e3\u51b3\u4e0d\u53ef\u91cd\u590d\u8bfb\u7684\u5173\u952e\u6240\u5728\u3002<\/li>\n<\/ul>\n<h2 id=\"2-\u9501\">2. \u9501<\/h2>\n<p>\u9501\u673a\u5236\u4e3b\u8981\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u4e8b\u52a1\u5bf9\u540c\u4e00\u6570\u636e\u7684\u5199\u64cd\u4f5c\uff0c\u4ee5\u4fdd\u8bc1\u6570\u636e\u7684\u4e00\u81f4\u6027\u3002<\/p>\n<ul>\n<li>\u5171\u4eab\u9501\uff08S\u9501\uff09\uff1a\u5141\u8bb8\u591a\u4e2a\u4e8b\u52a1\u540c\u65f6\u6301\u6709\uff0c\u4f46\u4f1a\u963b\u6b62\u5176\u4ed6\u4e8b\u52a1\u83b7\u5f97\u6392\u4ed6\u9501\u3002<\/li>\n<li>\u6392\u4ed6\u9501\uff08X\u9501\uff09\uff1a\u4e00\u6b21\u53ea\u80fd\u88ab\u4e00\u4e2a\u4e8b\u52a1\u6301\u6709\uff0c\u4f1a\u963b\u585e\u5176\u4ed6\u4e8b\u52a1\u7684\u8bfb\u5199\u64cd\u4f5c\u3002<\/li>\n<\/ul>\n<p><strong>\u9501\u673a\u5236\u5728\u4e0d\u540c\u9694\u79bb\u7ea7\u522b\u4e0b\u7684\u5e94\u7528\uff1a<\/strong><\/p>"},{"title":"\u4ec0\u4e48\u662fRedLock","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E4%BB%80%E4%B9%88%E6%98%AFredlock\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E4%BB%80%E4%B9%88%E6%98%AFredlock\/","description":"<h2 id=\"\u4ec0\u4e48\u662fredlock\u7ea2\u9501\">\u4ec0\u4e48\u662fRedLock\uff08\u7ea2\u9501\uff09<\/h2>\n<ul>\n<li>RedLock\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u9501\u7684\u5b9e\u73b0\u7b97\u6cd5\uff0c\u7531Redis\u7684\u521b\u9020\u8005Antirez\uff08Salvatore Sanfilippo\uff09\u63d0\u51fa\u3002\u8fd9\u79cd\u7b97\u6cd5\u65e8\u5728\u89e3\u51b3\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u5b89\u5168\u5730\u83b7\u53d6\u9501\u7684\u95ee\u9898\uff0c\u7279\u522b\u662f\u5728\u57fa\u4e8eRedis\u8fd9\u79cd\u5185\u5b58\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\u73af\u5883\u4e0b\u3002<\/li>\n<li>RedLock\u63d0\u4f9b\u4e86\u4e00\u79cd\u65b9\u6cd5\uff0c\u7528\u4e8e\u5728\u6ca1\u6709\u4e2d\u5fc3\u5316\u9501\u670d\u52a1\u7684\u60c5\u51b5\u4e0b\uff0cacross\u591a\u4e2aRedis\u5b9e\u4f8b\u5b89\u5168\u5730\u534f\u8c03\u9501\u3002<\/li>\n<\/ul>\n<h2 id=\"redlock\u7b97\u6cd5\u7684\u5de5\u4f5c\u539f\u7406\">RedLock\u7b97\u6cd5\u7684\u5de5\u4f5c\u539f\u7406<\/h2>\n<ul>\n<li>RedLock\u7b97\u6cd5\u7684\u57fa\u672c\u601d\u60f3\u662f\u4f7f\u7528\u591a\u4e2a\u72ec\u7acb\u7684Redis\u5b9e\u4f8b\u6765\u907f\u514d\u5355\u70b9\u6545\u969c\u95ee\u9898\uff0c\u7b97\u6cd5\u7684\u6b65\u9aa4\u5982\u4e0b\uff1a<\/li>\n<\/ul>\n<ol>\n<li>\u83b7\u53d6\u9501\uff1a\u5f53\u5ba2\u6237\u7aef\u5c1d\u8bd5\u83b7\u53d6\u5206\u5e03\u5f0f\u9501\u65f6\uff0c\u5b83\u4f1a\u5411N\u4e2aRedis\u5b9e\u4f8b\u5c1d\u8bd5\u83b7\u53d6\u9501\uff0c\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d\uff0c\u5ba2\u6237\u7aef\u4f1a\u751f\u6210\u4e00\u4e2a\u968f\u673a\u7684\u9501ID\uff08\u901a\u5e38\u662f\u4e00\u4e2a\u968f\u673a\u7684\u5b57\u7b26\u4e32\uff09\uff0c\u7528\u4e8e\u6807\u8bc6\u8fd9\u4e2a\u9501\u7684\u552f\u4e00\u6027\u3002\u5bf9\u4e8e\u6bcf\u4e00\u4e2aRedis\u5b9e\u4f8b\uff0c\u5ba2\u6237\u7aef\u90fd\u4f1a\u5c1d\u8bd5\u4f7f\u7528\u76f8\u540c\u7684key\u548c\u552f\u4e00\u7684\u9501ID\u8c03\u7528SETNX\u547d\u4ee4\uff08\u6216SET\u547d\u4ee4\u7684\u4e00\u4e2a\u53d8\u4f53\uff0c\u786e\u4fdd\u539f\u5b50\u6027\uff0c\u4f8b\u5982SET key value NX PX 10000\uff09\u3002<\/li>\n<li>\u9501\u7684\u65f6\u95f4\u9650\u5236\uff1a\u5728\u5c1d\u8bd5\u83b7\u53d6\u9501\u65f6\uff0c\u5ba2\u6237\u7aef\u4f1a\u4e3a\u6bcf\u4e2a\u9501\u8bbe\u7f6e\u4e00\u4e2a\u8fc7\u671f\u65f6\u95f4\uff0c\u786e\u4fdd\u5373\u4f7f\u53d1\u751f\u6545\u969c\uff0c\u9501\u4e5f\u4f1a\u81ea\u52a8\u91ca\u653e\uff0c\u907f\u514d\u6b7b\u9501\u95ee\u9898\u3002<\/li>\n<li>\u591a\u6570\u89c4\u5219\uff1a\u5ba2\u6237\u7aef\u9700\u8981\u5728\u5927\u591a\u6570\uff08N\/2+1\uff09\u7684Redis\u5b9e\u4f8b\u4e0a\u6210\u529f\u83b7\u53d6\u9501\uff0c\u624d\u7b97\u6210\u529f\u83b7\u53d6\u5206\u5e03\u5f0f\u9501\u3002<\/li>\n<li>\u9501\u7684\u6709\u6548\u65f6\u95f4\u8ba1\u7b97\uff1a\u5982\u679c\u5ba2\u6237\u7aef\u5728\u5927\u591a\u6570Redis\u5b9e\u4f8b\u4e0a\u6210\u529f\u83b7\u53d6\u9501\uff0c\u5b83\u5c06\u8ba1\u7b97\u9501\u7684\u6709\u6548\u65f6\u95f4\uff0c\u5373\u539f\u59cb\u6709\u6548\u65f6\u95f4\u51cf\u53bb\u83b7\u53d6\u9501\u6240\u82b1\u8d39\u7684\u65f6\u95f4\u3002<\/li>\n<li>\u91ca\u653e\u9501\uff1a\u5f53\u5ba2\u6237\u7aef\u5b8c\u6210\u5176\u64cd\u4f5c\u540e\uff0c\u4f1a\u5411\u6240\u6709Redis\u5b9e\u4f8b\u53d1\u9001\u91ca\u653e\u9501\u7684\u547d\u4ee4\uff0c\u65e0\u8bba\u5b83\u662f\u5426\u5728\u8be5\u5b9e\u4f8b\u4e0a\u6210\u529f\u83b7\u53d6\u4e86\u9501\u3002<\/li>\n<\/ol>\n<h2 id=\"redlock\u7684\u4f18\u70b9\">RedLock\u7684\u4f18\u70b9<\/h2>\n<ul>\n<li>\u5bb9\u9519\u6027\uff1a\u7531\u4e8eRedLock\u7b97\u6cd5\u5728\u591a\u4e2aRedis\u5b9e\u4f8b\u4e0a\u64cd\u4f5c\uff0c\u5373\u4f7f\u5176\u4e2d\u4e00\u4e9b\u5b9e\u4f8b\u4e0d\u53ef\u7528\uff0c\u53ea\u8981\u6ee1\u8db3\u5927\u591a\u6570\u89c4\u5219\uff0c\u5ba2\u6237\u7aef\u4ecd\u7136\u53ef\u4ee5\u5b89\u5168\u5730\u83b7\u53d6\u548c\u91ca\u653e\u9501\u3002<\/li>\n<li>\u65e0\u4e2d\u5fc3\u5316\uff1aRedLock\u4e0d\u4f9d\u8d56\u4e8e\u5355\u4e2a\u4e2d\u5fc3\u5316\u7684\u9501\u670d\u52a1\uff0c\u51cf\u5c11\u4e86\u5355\u70b9\u6545\u969c\u7684\u98ce\u9669\u3002<\/li>\n<\/ul>\n<h2 id=\"\u6ce8\u610f\u4e8b\u9879\">\u6ce8\u610f\u4e8b\u9879<\/h2>\n<ul>\n<li>\u6027\u80fd\u8003\u8651\uff1aRedLock\u7b97\u6cd5\u9700\u8981\u4e0e\u591a\u4e2aRedis\u5b9e\u4f8b\u901a\u4fe1\uff0c\u76f8\u6bd4\u4e8e\u5355\u4e2aRedis\u5b9e\u4f8b\u7684\u9501\uff0c\u53ef\u80fd\u4f1a\u6709\u66f4\u9ad8\u7684\u5ef6\u8fdf\u3002<\/li>\n<li>\u65f6\u95f4\u540c\u6b65\uff1aRedLock\u7b97\u6cd5\u7684\u5b89\u5168\u6027\u90e8\u5206\u4f9d\u8d56\u4e8e\u53c2\u4e0e\u7684Redis\u5b9e\u4f8b\u4e4b\u95f4\u7684\u65f6\u95f4\u540c\u6b65\u3002\u65f6\u949f\u504f\u5dee\u53ef\u80fd\u4f1a\u5f71\u54cd\u9501\u7684\u5b89\u5168\u6027\u3002<\/li>\n<\/ul>\n<p>\u53c2\u8003\uff1a<a href=\"https:\/\/cloud.tencent.com\/developer\/article\/2390644\">https:\/\/cloud.tencent.com\/developer\/article\/2390644<\/a><\/p>"},{"title":"\u5404\u79cd\u9501","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E5%90%84%E7%A7%8D%E9%94%81\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E5%90%84%E7%A7%8D%E9%94%81\/","description":"<h1 id=\"go-\u9501\">GO \u9501<\/h1>\n<h2 id=\"\u4e92\u65a5\u9501-syncmutex\">\u4e92\u65a5\u9501 sync.Mutex<\/h2>\n<p>\u4e92\u65a5\u9501\u662f\u6700\u57fa\u672c\u7684\u9501\uff0c\u5b83\u53ef\u4ee5\u4fdd\u8bc1\u540c\u4e00\u65f6\u523b\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u53ef\u4ee5\u8bbf\u95ee\u5171\u4eab\u8d44\u6e90\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\">\/\/ noCopy \u662f\u4e00\u4e2a\u7a7a\u7ed3\u6784\u4f53\uff0c\u7528\u4e8e\u9632\u6b62 Mutex \u88ab\u62f7\u8d1d\u3002<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">noCopy<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"p\">{}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">isync<\/span><span class=\"p\">.<\/span><span class=\"nx\">Mutex<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">state<\/span><span class=\"w\"> <\/span><span class=\"kt\">int32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u9501\u7684\u72b6\u6001\uff0c\u4f7f\u7528\u539f\u5b50\u64cd\u4f5c\u7ba1\u7406\u30020 \u8868\u793a\u672a\u52a0\u9501\uff0c1 \u8868\u793a\u5df2\u52a0\u9501\u3002<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">sema<\/span><span class=\"w\"> <\/span><span class=\"kt\">uint32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4fe1\u53f7\u91cf\uff0c\u7528\u4e8e\u5b9e\u73b0\u9501\u7684\u7b49\u5f85\u961f\u5217\u3002<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">Mutex<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">_<\/span><span class=\"w\"> <\/span><span class=\"nx\">noCopy<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nx\">mu<\/span><span class=\"w\"> <\/span><span class=\"nx\">isync<\/span><span class=\"p\">.<\/span><span class=\"nx\">Mutex<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u8bfb\u5199\u9501-syncrwmutex\">\u8bfb\u5199\u9501 sync.RWMutex<\/h2>\n<p>\u8bfb\u8bfb\u5171\u4eab\uff0c\u8bfb\u5199\u4e92\u65a5\uff0c\u5199\u5199\u4e92\u65a5\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-go\" data-lang=\"go\"><span class=\"line\"><span class=\"cl\"><span class=\"kd\">type<\/span><span class=\"w\"> <\/span><span class=\"nx\">RWMutex<\/span><span class=\"w\"> <\/span><span class=\"kd\">struct<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">w<\/span><span class=\"w\"> <\/span><span class=\"nx\">Mutex<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u4e92\u65a5\u9501\uff0c\u7528\u4e8e\u63a7\u5236\u5199\u64cd\u4f5c<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">writerSem<\/span><span class=\"w\"> <\/span><span class=\"kt\">uint32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5199\u64cd\u4f5c\u7684\u4fe1\u53f7\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">readerSem<\/span><span class=\"w\"> <\/span><span class=\"kt\">uint32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u8bfb\u64cd\u4f5c\u7684\u4fe1\u53f7\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">readerCount<\/span><span class=\"w\"> <\/span><span class=\"nx\">atomic<\/span><span class=\"p\">.<\/span><span class=\"nx\">Int32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5f53\u524d\u6b63\u5728\u6301\u6709\u8bfb\u9501\u7684\u8bfb\u64cd\u4f5c\u6570\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\t<\/span><span class=\"nx\">readerWait<\/span><span class=\"w\"> <\/span><span class=\"nx\">atomic<\/span><span class=\"p\">.<\/span><span class=\"nx\">Int32<\/span><span class=\"w\"> <\/span><span class=\"c1\">\/\/ \u5f53\u524d\u6b63\u5728\u7b49\u5f85\u91ca\u653e\u7684\u8bfb\u64cd\u4f5c\u6570\u91cf<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h2 id=\"\u6ce8\u610f\">\u6ce8\u610f\uff1a<\/h2>\n<ol>\n<li>\u540c\u4e00\u4e2a\u534f\u7a0b\u4e0d\u80fd\u8fde\u7eed\u591a\u6b21\u8c03\u7528 Lock, \u5426\u5219\u53d1\u751f\u6b7b\u9501<\/li>\n<li>\u9501\u8d44\u6e90\u65f6\u5c3d\u91cf\u7f29\u5c0f\u8d44\u6e90\u7684\u8303\u56f4\uff0c\u4ee5\u514d\u5f15\u8d77\u5176\u5b83\u534f\u7a0b\u8d85\u957f\u65f6\u95f4\u7b49\u5f85<\/li>\n<li>mutex \u4f20\u9012\u7ed9\u5916\u90e8\u7684\u65f6\u5019\u9700\u8981\u4f20\u6307\u9488\uff0c\u4e0d\u7136\u5c31\u662f\u5b9e\u4f8b\u7684\u62f7\u8d1d\uff0c\u4f1a\u5f15\u8d77\u9501\u5931\u8d25<\/li>\n<li>\u5584\u7528 defer \u786e\u4fdd\u5728\u51fd\u6570\u5185\u91ca\u653e\u4e86\u9501<\/li>\n<li>\u4f7f\u7528 - race \u5728\u8fd0\u884c\u65f6\u68c0\u6d4b\u6570\u636e\u7ade\u4e89\u95ee\u9898\uff0cgo test -race &hellip;.\uff0cgo build -race &hellip;.<\/li>\n<li>\u5584\u7528\u9759\u6001\u5de5\u5177\u68c0\u67e5\u9501\u7684\u4f7f\u7528\u95ee\u9898<\/li>\n<li>\u4f7f\u7528 go-deadlock \u68c0\u6d4b\u6b7b\u9501\uff0c\u548c\u6307\u5b9a\u9501\u8d85\u65f6\u7684\u7b49\u5f85\u95ee\u9898<\/li>\n<li>\u80fd\u7528 channel \u7684\u573a\u666f\u522b\u4f7f\u7528\u6210\u4e86 lock<\/li>\n<\/ol>\n<h1 id=\"mysql-\u9501\">MySQL \u9501<\/h1>\n<h2 id=\"\u8868\u9501\">\u8868\u9501<\/h2>\n<p>\u8868\u7ea7\u9501\u4f1a\u5bf9\u6574\u5f20\u8868\u8fdb\u884c\u9501\u5b9a\u3002<\/p>"},{"title":"\u6296\u97f3\u5b9e\u73b0\u5173\u6ce8\u7528\u6237\u3001\u5173\u6ce8\u5217\u7684\u89c6\u9891\u6d41\u7684\u6570\u636e\u5e93\u8bbe\u8ba1","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E6%8A%96%E9%9F%B3%E5%AE%9E%E7%8E%B0%E5%85%B3%E6%B3%A8%E7%94%A8%E6%88%B7%E5%85%B3%E6%B3%A8%E5%88%97%E7%9A%84%E8%A7%86%E9%A2%91%E6%B5%81%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E6%8A%96%E9%9F%B3%E5%AE%9E%E7%8E%B0%E5%85%B3%E6%B3%A8%E7%94%A8%E6%88%B7%E5%85%B3%E6%B3%A8%E5%88%97%E7%9A%84%E8%A7%86%E9%A2%91%E6%B5%81%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1\/","description":"<h2 id=\"\u4e00\u5173\u6ce8\u5173\u7cfb\u8868\u8bbe\u8ba1\">\u4e00\u3001\u5173\u6ce8\u5173\u7cfb\u8868\u8bbe\u8ba1<\/h2>\n<p>\u5173\u6ce8\u5173\u7cfb\u8868\u8bb0\u5f55\u4e86\u7528\u6237\u4e4b\u95f4\u7684\u5173\u6ce8\u884c\u4e3a\uff0c\u662f\u793e\u4ea4\u7f51\u7edc\u7684\u57fa\u7840\u3002<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-sql\" data-lang=\"sql\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">CREATE<\/span><span class=\"w\"> <\/span><span class=\"k\">TABLE<\/span><span class=\"w\"> <\/span><span class=\"n\">user_follows<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">id<\/span><span class=\"w\"> <\/span><span class=\"nb\">BIGINT<\/span><span class=\"w\"> <\/span><span class=\"k\">PRIMARY<\/span><span class=\"w\"> <\/span><span class=\"k\">KEY<\/span><span class=\"w\"> <\/span><span class=\"n\">AUTO_INCREMENT<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">follower_id<\/span><span class=\"w\"> <\/span><span class=\"nb\">BIGINT<\/span><span class=\"w\"> <\/span><span class=\"k\">NOT<\/span><span class=\"w\"> <\/span><span class=\"k\">NULL<\/span><span class=\"w\"> <\/span><span class=\"k\">COMMENT<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;\u5173\u6ce8\u8005ID&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">following_id<\/span><span class=\"w\"> <\/span><span class=\"nb\">BIGINT<\/span><span class=\"w\"> <\/span><span class=\"k\">NOT<\/span><span class=\"w\"> <\/span><span class=\"k\">NULL<\/span><span class=\"w\"> <\/span><span class=\"k\">COMMENT<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;\u88ab\u5173\u6ce8\u8005ID&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">created_at<\/span><span class=\"w\"> <\/span><span class=\"k\">TIMESTAMP<\/span><span class=\"w\"> <\/span><span class=\"k\">DEFAULT<\/span><span class=\"w\"> <\/span><span class=\"k\">CURRENT_TIMESTAMP<\/span><span class=\"w\"> <\/span><span class=\"k\">COMMENT<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;\u5173\u6ce8\u65f6\u95f4&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"n\">status<\/span><span class=\"w\"> <\/span><span class=\"n\">TINYINT<\/span><span class=\"w\"> <\/span><span class=\"k\">DEFAULT<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> <\/span><span class=\"k\">COMMENT<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;\u5173\u6ce8\u72b6\u6001: 1=\u6b63\u5e38, 0=\u5df2\u53d6\u6d88&#39;<\/span><span class=\"p\">,<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">INDEX<\/span><span class=\"w\"> <\/span><span class=\"n\">idx_follower<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">follower_id<\/span><span class=\"p\">),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">INDEX<\/span><span class=\"w\"> <\/span><span class=\"n\">idx_following<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">following_id<\/span><span class=\"p\">),<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"k\">UNIQUE<\/span><span class=\"w\"> <\/span><span class=\"k\">KEY<\/span><span class=\"w\"> <\/span><span class=\"n\">uniq_follow<\/span><span class=\"w\"> <\/span><span class=\"p\">(<\/span><span class=\"n\">follower_id<\/span><span class=\"p\">,<\/span><span class=\"w\"> <\/span><span class=\"n\">following_id<\/span><span class=\"p\">)<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">);<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><h3 id=\"\u6838\u5fc3\u7d22\u5f15\u5206\u6790\">\u6838\u5fc3\u7d22\u5f15\u5206\u6790<\/h3>\n<ol>\n<li>\n<p><strong>\u7528\u6237\u5173\u6ce8\u5217\u8868\u67e5\u8be2<\/strong><\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-sql\" data-lang=\"sql\"><span class=\"line\"><span class=\"cl\"><span class=\"k\">SELECT<\/span><span class=\"w\"> <\/span><span class=\"n\">following_id<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">FROM<\/span><span class=\"w\"> <\/span><span class=\"n\">user_follows<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">WHERE<\/span><span class=\"w\"> <\/span><span class=\"n\">follower_id<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"o\">?<\/span><span class=\"w\"> <\/span><span class=\"k\">AND<\/span><span class=\"w\"> <\/span><span class=\"n\">status<\/span><span class=\"w\"> <\/span><span class=\"o\">=<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">ORDER<\/span><span class=\"w\"> <\/span><span class=\"k\">BY<\/span><span class=\"w\"> <\/span><span class=\"n\">created_at<\/span><span class=\"w\"> <\/span><span class=\"k\">DESC<\/span><span class=\"w\"> \n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"k\">LIMIT<\/span><span class=\"w\"> <\/span><span class=\"mi\">20<\/span><span class=\"p\">;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ul>\n<li>\u4f7f\u7528<code>idx_follower (follower_id)<\/code>\u7d22\u5f15\uff0c\u53ef\u5feb\u901f\u5b9a\u4f4d\u7528\u6237\u7684\u6240\u6709\u5173\u6ce8\u8bb0\u5f55<\/li>\n<li>\u6309\u5173\u6ce8\u65f6\u95f4\u5012\u5e8f\u6392\u5217\uff0c\u652f\u6301\u6700\u65b0\u5173\u6ce8\u4f18\u5148\u5c55\u793a<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u7528\u6237\u7c89\u4e1d\u5217\u8868\u67e5\u8be2<\/strong><\/p>"},{"title":"\u7f13\u5b58\u4e0e\u6570\u636e\u5e93\u53cc\u5199\u4e00\u81f4\u6027","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E7%BC%93%E5%AD%98%E4%B8%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%8C%E5%86%99%E4%B8%80%E8%87%B4%E6%80%A7\/","pubDate":"Mon, 05 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/%E7%BC%93%E5%AD%98%E4%B8%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%8C%E5%86%99%E4%B8%80%E8%87%B4%E6%80%A7\/","description":"<h2 id=\"\u4e3a\u4ec0\u4e48\u4e0d\u4e00\u81f4\">\u4e3a\u4ec0\u4e48\u4e0d\u4e00\u81f4<\/h2>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/db1.png\" alt=\"img\"><\/p>\n<h2 id=\"\u7f13\u5b58\u4e0e\u6570\u636e\u5e93\u53cc\u5199\u4e00\u81f4\u6027\u65b9\u6848\">\u7f13\u5b58\u4e0e\u6570\u636e\u5e93\u53cc\u5199\u4e00\u81f4\u6027\u65b9\u6848<\/h2>\n<h3 id=\"1-\u66f4\u65b0\u6570\u636e\u5e93\u4e4b\u540e\u5220\u9664\u7f13\u5b58\u89e3\u51b3\u90e8\u5206\u4e0d\u4e00\u81f4\">1. \u66f4\u65b0\u6570\u636e\u5e93\u4e4b\u540e\u5220\u9664\u7f13\u5b58\uff08\u89e3\u51b3\u90e8\u5206\u4e0d\u4e00\u81f4\uff09<\/h3>\n<h3 id=\"2-\u52a0\u5206\u5e03\u5f0f\u9501\u5b8c\u5168\u4e00\u81f4\u6027\u6027\u80fd\u8f83\u5dee\">2. \u52a0\u5206\u5e03\u5f0f\u9501\uff08\u5b8c\u5168\u4e00\u81f4\u6027\uff0c\u6027\u80fd\u8f83\u5dee\uff09<\/h3>\n<h3 id=\"3-canal-\u5f02\u6b65\u66f4\u65b0\u7f13\u5b58\u6700\u7ec8\u4e00\u81f4\u6027\u6027\u80fd\u8f83\u597d\">3. canal \u5f02\u6b65\u66f4\u65b0\u7f13\u5b58\uff08\u6700\u7ec8\u4e00\u81f4\u6027\uff0c\u6027\u80fd\u8f83\u597d\uff09<\/h3>\n<p><img src=\"https:\/\/hch1212.github.io\/other\/db2.png\" alt=\"img\"><\/p>\n<h3 id=\"4-\u8bbe\u7f6e\u8f83\u77ed\u7684\u8fc7\u671f\u65f6\u95f4\u6700\u7ec8\u4e00\u81f4\u6027\u6027\u80fd\u8f83\u597d\u6700\u7b80\u5355\">4. \u8bbe\u7f6e\u8f83\u77ed\u7684\u8fc7\u671f\u65f6\u95f4\uff08\u6700\u7ec8\u4e00\u81f4\u6027\uff0c\u6027\u80fd\u8f83\u597d\uff0c\u6700\u7b80\u5355\uff09<\/h3>\n<h3 id=\"5-1\u7684\u4f18\u5316\">5. 1\u7684\u4f18\u5316\uff1a<\/h3>\n<ul>\n<li>\n<p>\u5ef6\u8fdf\u53cc\u5220\u7b56\u7565\uff1a\u4e3a\u4e86\u5904\u7406\u5728\u7f13\u5b58\u5220\u9664\u548c\u6570\u636e\u5e93\u66f4\u65b0\u4e4b\u95f4\u53ef\u80fd\u53d1\u751f\u7684\u5e76\u53d1\u8bf7\u6c42\uff0c\u53ef\u4ee5\u91c7\u7528\u5ef6\u8fdf\u53cc\u5220\u7b56\u7565\uff1a<\/p>\n<\/li>\n<li>\n<p>\u5199\u64cd\u4f5c\u6d41\u7a0b\uff1a<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\u5148\u5220\u9664Redis\u4e2d\u7684\u7f13\u5b58\u6570\u636e\u3002<\/li>\n<li>\u66f4\u65b0MySQL\u4e2d\u7684\u6570\u636e\u3002<\/li>\n<li>\u5ef6\u8fdf\u4e00\u5c0f\u6bb5\u65f6\u95f4\uff08\u4f8b\u5982\uff0c\u51e0\u767e\u6beb\u79d2\uff09\uff0c\u518d\u6b21\u5220\u9664Redis\u4e2d\u7684\u7f13\u5b58\u6570\u636e\u3002<\/li>\n<\/ol>\n<ul>\n<li>\u5ef6\u8fdf\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u5904\u7406\u5728\u8fd9\u4e2a\u77ed\u6682\u7684\u65f6\u95f4\u7a97\u53e3\u5185\u53ef\u80fd\u5230\u8fbe\u7684\u5e76\u53d1\u8bfb\u8bf7\u6c42\uff0c\u8fd9\u4e9b\u8bf7\u6c42\u53ef\u80fd\u4f1a\u518d\u6b21\u5c06\u65e7\u6570\u636e\u52a0\u8f7d\u5230\u7f13\u5b58\u4e2d\u3002<\/li>\n<\/ul>"},{"title":"Hugo\u90e8\u7f72\u535a\u5ba2","link":"https:\/\/hch1212.github.io\/posts\/2026\/01\/hugo%E9%83%A8%E7%BD%B2%E5%8D%9A%E5%AE%A2\/","pubDate":"Sat, 03 Jan 2026 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/posts\/2026\/01\/hugo%E9%83%A8%E7%BD%B2%E5%8D%9A%E5%AE%A2\/","description":"<h2 id=\"\u524d\u7f6e\u6761\u4ef6\">\u524d\u7f6e\u6761\u4ef6<\/h2>\n<ul>\n<li>\u5b89\u88c5hugo<\/li>\n<li>\u6709github<\/li>\n<\/ul>\n<h2 id=\"\u6b65\u9aa4\">\u6b65\u9aa4<\/h2>\n<ol>\n<li>\u521d\u59cb\u5316\uff08\u535a\u5ba2\u4e3b\u9898\u53ef\u66ff\u6362\uff09<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">hugo new site quickstart\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">cd<\/span> quickstart\n<\/span><\/span><span class=\"line\"><span class=\"cl\">git init\n<\/span><\/span><span class=\"line\"><span class=\"cl\">git submodule add https:\/\/github.com\/theNewDynamic\/gohugo-theme-ananke.git themes\/ananke\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nb\">echo<\/span> <span class=\"s2\">&#34;theme = &#39;ananke&#39;&#34;<\/span> &gt;&gt; hugo.toml\n<\/span><\/span><span class=\"line\"><span class=\"cl\">hugo server\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"2\">\n<li>\u65b0\u6587\u7ae0<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">hugo new content\/posts\/my-first-post.md\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"3\">\n<li>\u8fd0\u884c\uff08-D\u5305\u542b\u8349\u7a3f\uff09<\/li>\n<\/ol>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-bash\" data-lang=\"bash\"><span class=\"line\"><span class=\"cl\">hugo server -D\n<\/span><\/span><\/code><\/pre><\/div><ol start=\"4\">\n<li>\u90e8\u7f72<\/li>\n<\/ol>\n<p>\u53ef\u4ee5\u53c2\u8003\u6211\u7684github\uff0c\u5b9e\u73b0\u81ea\u52a8\u53d1\u5e03\uff0cgiftia_blog\u662f\u535a\u5ba2\u4e3b\u9898\uff0chch1212.github.io\u662f.\/public\u6587\u4ef6\u5939\uff08\u5c55\u793a\u4e3b\u4f53\uff09<\/p>\n<p>\u90e8\u7f72yaml\u6587\u4ef6\u53c2\u8003<\/p>\n<div class=\"highlight\"><pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u53d1\u5e03Hugo\u7f51\u7ad9\u5230Pages\uff08\u8de8\u4ed3\u5e93\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">on<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">push<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">branches<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"l\">main]<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"nt\">jobs<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">build-and-deploy<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">runs-on<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">ubuntu-latest<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">steps<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u6b65\u9aa41\uff1a\u68c0\u51fa\u6e90\u7801\u4ed3\u5e93\uff08giftia_blog\uff09\u7684\u4ee3\u7801\uff08\u542b\u4e3b\u9898\u5b50\u6a21\u5757\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u68c0\u51faHugo\u6e90\u7801<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">uses<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">actions\/checkout@v4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">with<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">submodules<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">fetch-depth<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"m\">0<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u6b65\u9aa42\uff1a\u5b89\u88c5\u6307\u5b9a\u7248\u672c Hugo 0.154.1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u5b89\u88c5Hugo 0.154.1<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">uses<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">peaceiris\/actions-hugo@v2<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">with<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">hugo-version<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s1\">&#39;0.154.1&#39;<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># extended: true # \u9700SCSS\/SASS\u652f\u6301\u65f6\u53d6\u6d88\u6ce8\u91ca<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u6b65\u9aa43\uff1a\u6784\u5efaHugo\u4ea7\u7269\uff08\u751f\u6210public\u76ee\u5f55\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u6784\u5efaHugo\u7f51\u7ad9<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">run<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">hugo --minify<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u6b65\u9aa44\uff1a\u8de8\u4ed3\u5e93\u90e8\u7f72\u5230 hch1212.github.io \u4ed3\u5e93\uff08\u5df2\u4fee\u6b63\u53c2\u6570\u540d\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">name<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">\u90e8\u7f72\u5230Pages\u4ed3\u5e93<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">uses<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">peaceiris\/actions-gh-pages@v4<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">with<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u5173\u952e\u4fee\u6b63\uff1a\u53c2\u6570\u540d\u6539\u4e3a personal_token\uff08\u5bf9\u5e94 v4 \u7248\u672c\u8981\u6c42\uff09<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">personal_token<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">${{ secrets.TOKEN }}<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u4fdd\u6301\u4f60\u7684 Pages \u4ed3\u5e93\u5730\u5740\u4e0d\u53d8<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">external_repository<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">HCH1212\/hch1212.github.io<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u90e8\u7f72\u5230 Pages \u4ed3\u5e93\u7684 main \u5206\u652f\u4e0d\u53d8<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">publish_branch<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">main<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># Hugo \u6784\u5efa\u4ea7\u7269\u76ee\u5f55\u4e0d\u53d8<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">publish_dir<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">.\/public<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"c\"># \u90e8\u7f72\u63d0\u4ea4\u4fe1\u606f\u4e0d\u53d8<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">commit_message<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">&#34;Deploy from giftia_blog: ${{ github.sha }}&#34;<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/div><ol start=\"5\">\n<li>\u5176\u4ed6<\/li>\n<\/ol>\n<p>\u914d\u7f6e\u6587\u4ef6\u53c2\u8003\uff1a<\/p>"},{"title":"About","link":"https:\/\/hch1212.github.io\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/about\/","description":"<ul>\n<li>Email\uff1ahch20041214sr@qq.com<\/li>\n<li>QQ\uff1a2159965839<\/li>\n<\/ul>"},{"title":"Archives","link":"https:\/\/hch1212.github.io\/archives\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/archives\/","description":{}},{"title":"Gallery","link":"https:\/\/hch1212.github.io\/gallery\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/gallery\/","description":"<div style=\"display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px; padding: 10px;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila.png\" alt=\"aila\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila1.png\" alt=\"aila1\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila2.png\" alt=\"aila2\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila3.png\" alt=\"aila3\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila4.png\" alt=\"aila4\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila5.jpg\" alt=\"aila5\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila6.gif\" alt=\"aila6\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila7.png\" alt=\"aila7\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila8.png\" alt=\"aila8\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila9.png\" alt=\"aila9\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila10.png\" alt=\"aila10\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila11.png\" alt=\"aila11\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila12.png\" alt=\"aila12\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila13.jpeg\" alt=\"aila13\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila14.jpeg\" alt=\"aila14\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila15.jpeg\" alt=\"aila15\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila16.jpeg\" alt=\"aila16\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila17.jpeg\" alt=\"aila17\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila18.jpeg\" alt=\"aila18\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila19.png\" alt=\"aila19\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila20.jpeg\" alt=\"aila20\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila21.png\" alt=\"aila21\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila22.jpeg\" alt=\"aila22\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila23.jpeg\" alt=\"aila23\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila24.jpeg\" alt=\"aila24\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila25.jpeg\" alt=\"aila25\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila26.jpeg\" alt=\"aila26\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila27.jpeg\" alt=\"aila27\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila28.jpeg\" alt=\"aila28\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila29.jpeg\" alt=\"aila29\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila30.jpeg\" alt=\"aila30\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila31.jpeg\" alt=\"aila31\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila32.jpeg\" alt=\"aila32\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila33.jpeg\" alt=\"aila33\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila34.png\" alt=\"aila34\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila35.jpeg\" alt=\"aila35\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila36.jpeg\" alt=\"aila36\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila37.jpeg\" alt=\"aila37\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila38.jpeg\" alt=\"aila38\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila39.jpeg\" alt=\"aila39\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila40.jpeg\" alt=\"aila40\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila41.jpeg\" alt=\"aila41\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila42.jpeg\" alt=\"aila42\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila43.jpeg\" alt=\"aila43\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila44.jpeg\" alt=\"aila44\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila45.gif\" alt=\"aila45\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila46.jpeg\" alt=\"aila46\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila47.jpeg\" alt=\"aila47\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila48.jpeg\" alt=\"aila48\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila49.jpeg\" alt=\"aila49\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila50.jpeg\" alt=\"aila50\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila51.jpeg\" alt=\"aila51\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila52.jpeg\" alt=\"aila52\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila53.jpeg\" alt=\"aila53\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila54.jpeg\" alt=\"aila54\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila55.jpeg\" alt=\"aila55\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila56.jpeg\" alt=\"aila56\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila57.jpeg\" alt=\"aila57\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila58.jpeg\" alt=\"aila58\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila59.jpeg\" alt=\"aila59\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila60.jpeg\" alt=\"aila60\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila61.jpeg\" alt=\"aila61\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila62.jpeg\" alt=\"aila62\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila63.jpeg\" alt=\"aila63\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila64.jpeg\" alt=\"aila64\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila65.jpeg\" alt=\"aila65\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila66.jpeg\" alt=\"aila66\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila67.jpeg\" alt=\"aila67\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila68.jpeg\" alt=\"aila68\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila69.png\" alt=\"aila69\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila70.jpeg\" alt=\"aila70\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila71.jpeg\" alt=\"aila71\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila72.jpeg\" alt=\"aila72\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila73.jpeg\" alt=\"aila73\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila74.jpeg\" alt=\"aila74\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila75.jpeg\" alt=\"aila75\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila76.jpeg\" alt=\"aila76\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila77.jpeg\" alt=\"aila77\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila78.png\" alt=\"aila78\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila79.png\" alt=\"aila79\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila80.png\" alt=\"aila80\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila81.jpg\" alt=\"aila81\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila82.jpg\" alt=\"aila82\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila83.jpg\" alt=\"aila83\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila84.png\" alt=\"aila84\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila85.png\" alt=\"aila85\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n <img src=\"https:\/\/hch1212.github.io\/aila\/aila86.png\" alt=\"aila86\" style=\"width: 100%; border-radius: 8px; object-fit: cover;\">\n<\/div>"},{"title":"Links","link":"https:\/\/hch1212.github.io\/links\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/links\/","description":"<h3 id=\"\u53cb\u60c5\u94fe\u63a5\">\u53cb\u60c5\u94fe\u63a5<\/h3>\n<ul>\n<li><a href=\"https:\/\/markity.github.io\/\">markity<\/a><\/li>\n<li><a href=\"https:\/\/lanlance.cn\/\">lanlance<\/a><\/li>\n<li><a href=\"https:\/\/sfkm.me\/\">sfkm<\/a><\/li>\n<li><a href=\"https:\/\/sianao.site\/\">sianao<\/a><\/li>\n<li><a href=\"https:\/\/geektutu.com\/\">geektutu<\/a><\/li>\n<li><a href=\"https:\/\/mechabare.art\/\">ailaart<\/a><\/li>\n<li><a href=\"https:\/\/www.fengfengzhidao.com\/\">fengfengzhidao<\/a><\/li>\n<li><a href=\"https:\/\/blog.coldbin.top\/\">bing<\/a><\/li>\n<li><a href=\"https:\/\/zhaoz3y.github.io\/\">3ing<\/a><\/li>\n<li><a href=\"http:\/\/www.moonic.site\/\">moonic<\/a><\/li>\n<\/ul>\n<blockquote>\n<p>\u6b22\u8fce\u5728\u8bc4\u8bba\u533a\u6216\u901a\u8fc7\u90ae\u4ef6\u7533\u8bf7\u4ea4\u6362\u53cb\u94fe\u3002<\/p>\n<\/blockquote>"},{"title":"Loves","link":"https:\/\/hch1212.github.io\/loves\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/hch1212.github.io\/loves\/","description":"<h3 id=\"anime\">anime<\/h3>\n<ul>\n<li>\u53ef\u5851\u6027\u8bb0\u5fc6\uff08\u6700\u559c\u6b22\u827e\u62c9\u4e86\uff01\uff09<\/li>\n<li>\u4e9a\u6258\u8389<\/li>\n<li>clannad<\/li>\n<li>angel beats<\/li>\n<li>air<\/li>\n<li>\u56db\u8c0e<\/li>\n<li>re0<\/li>\n<li>\u65a9\u8d64\u7ea2\u4e4b\u77b3<\/li>\n<li>\u672a\u95fb\u82b1\u540d<\/li>\n<li>\u8fdb\u51fb\u7684\u5de8\u4eba<\/li>\n<li>\u547d\u8fd0\u77f3\u4e4b\u95e8<\/li>\n<li>\u7ea6\u4f1a\u5927\u4f5c\u6218<\/li>\n<li>\u5bd2\u8749\u9e23\u6ce3\u4e4b\u65f6<\/li>\n<li>\u602a\u76d7\u57fa\u5fb7<\/li>\n<li>86<\/li>\n<li>\u9752\u6625\u732a\u5934\u7cfb\u5217<\/li>\n<li>\u6211\u5fc3\u5371<\/li>\n<li>\u6708\u8272\u771f\u7f8e<\/li>\n<li>\u7d2b\u7f57\u5170\u6c38\u6052\u82b1\u56ed<\/li>\n<li>\u590f\u6d1b\u7279<\/li>\n<li>\u4e2d\u4e8c\u75c5<\/li>\n<li>\u846c\u9001\u7684\u8299\u8389\u83b2<\/li>\n<li>\u5883\u754c\u7684\u5f7c\u65b9<\/li>\n<li>\u7f6a\u6076\u738b\u51a0<\/li>\n<li>\u672b\u65e5\u4e09\u95ee<\/li>\n<li>\u95f4\u8c0d\u8fc7\u5bb6\u5bb6<\/li>\n<li>\u5200\u5251\u795e\u57df<\/li>\n<li>\u597d\u60f3\u544a\u8bc9\u4f60<\/li>\n<li>\u4eba\u884c\u7535\u8111\u5929\u4f7f\u5fc3<\/li>\n<li>\u5b64\u72ec\u6447\u6eda<\/li>\n<li>\u706b\u5f71\u5fcd\u8005<\/li>\n<li>\u56fd\u5bb6\u961f<\/li>\n<li>\u9b54\u5973\u4e4b\u65c5<\/li>\n<li>\u4e94\u7b49\u5206\u7684\u82b1\u5ac1<\/li>\n<li>\u5438\u8840\u9b3c\u9a91\u58eb<\/li>\n<li>mygo<\/li>\n<li>mujica<\/li>\n<li>\u57c3\u7f57\u8292\u963f\u8001\u5e08<\/li>\n<li>little busters<\/li>\n<li>\u672a\u6765\u65e5\u8bb0<\/li>\n<li>eva<\/li>\n<li>\u6e38\u620f\u4eba\u751f<\/li>\n<li>\u4e3a\u7f8e\u597d\u7684\u4e16\u754c\u5411\u4e0a\u795d\u798f<\/li>\n<li>\u51c9\u5bab\u6625\u65e5<\/li>\n<li>\u9b54\u6cd5\u5c11\u5973\u5c0f\u5706<\/li>\n<li>\u6b7b\u4ea1\u7b14\u8bb0<\/li>\n<li>\u65e0\u804c\u8f6c\u751f<\/li>\n<li>\u7535\u952f\u4eba<\/li>\n<li>\u53cd\u53db\u7684\u9c81\u8def\u4fee<\/li>\n<li>\u68cd\u52c7<\/li>\n<li>\u4e1c\u4eac\u55b0\u79cd<\/li>\n<li>kanon<\/li>\n<li>\u8d5b\u9a6c\u5a18<\/li>\n<li>\u5bc4\u751f\u517d<\/li>\n<li>\u94a2\u70bcfa<\/li>\n<li>\u6211\u7684\u9752\u6625\u604b\u7231\u7269\u8bed\u679c\u7136\u6709\u95ee\u9898<\/li>\n<li>another<\/li>\n<li>\u9f99\u4e0e\u864e<\/li>\n<\/ul>\n<h3 id=\"anime-movie\">anime movie<\/h3>\n<ul>\n<li>\u5929\u6c14\u4e4b\u5b50<\/li>\n<li>\u4f60\u7684\u540d\u5b57<\/li>\n<li>\u94c3\u82bd\u4e4b\u65c5<\/li>\n<li>\u9f99\u732b<\/li>\n<li>\u671d\u82b1\u5915\u8a93<\/li>\n<li>\u5343\u4e0e\u5343\u5bfb<\/li>\n<li>\u5929\u7a7a\u4e4b\u57ce<\/li>\n<li>\u60ac\u5d16\u4e0a\u7684\u91d1\u9c7c\u59ec<\/li>\n<li>\u8d77\u98ce\u4e86<\/li>\n<li>\u6211\u60f3\u5403\u6389\u4f60\u7684\u80f0\u810f<\/li>\n<li>\u79d2\u901f\u4e94\u5398\u7c73<\/li>\n<li>\u8424\u706b\u4e4b\u68ee<\/li>\n<li>\u54c8\u5c14\u7684\u79fb\u52a8\u57ce\u5821<\/li>\n<li>\u704c\u7bee\u9ad8\u624b<\/li>\n<li>\u8d85\u65f6\u7a7a\u8f89\u591c\u59ec<\/li>\n<li>\u82e5\u80fd\u4e0e\u4f60\u5171\u4e58\u6d77\u6d6a\u4e4b\u4e0a<\/li>\n<\/ul>\n<h3 id=\"cn-anime\">cn anime<\/h3>\n<ul>\n<li>\u9f99\u65cf<\/li>\n<li>\u72d0\u5996\u5c0f\u7ea2\u5a18<\/li>\n<li>\u9547\u9b42\u8857<\/li>\n<li>\u5c38\u5144<\/li>\n<li>\u738b\u724c\u5fa1\u53f2<\/li>\n<\/ul>\n<h3 id=\"galgame\">galgame<\/h3>\n<ul>\n<li>\u53ef\u5851\u6027\u8bb0\u5fc6<\/li>\n<li>\u4e9a\u6258\u8389<\/li>\n<li>\u7f18\u4e4b\u7a7a<\/li>\n<li>\u5343\u604b\u4e07\u82b1<\/li>\n<li>\u7d20\u6674\u65e5<\/li>\n<li>\u60a0\u4e4b\u7a7a<\/li>\n<li>eden<\/li>\n<li>\u767d\u8272\u76f8\u7c3f2<\/li>\n<li>\u6b7b\u9986<\/li>\n<li>\u9b54\u5973\u7684\u591c\u5bb4<\/li>\n<li>\u58f3\u4e4b\u5c11\u5973<\/li>\n<li>\u5de7\u514b\u751c\u604b<\/li>\n<li>\u6a31\u4e4b\u8bd7<\/li>\n<li>\u997f\u6b8d<\/li>\n<li>\u661f\u4e4b\u7ec8\u9014<\/li>\n<li>\u771f\u7231\u767e\u5408<\/li>\n<li>\u53d8\u6001\u76d1\u72f1<\/li>\n<li>\u72d0\u59ec\u96f6<\/li>\n<li>\u53d8\u6001\u76d1\u72f1<\/li>\n<li>\u541b\u4e0e\u5f7c\u5973\u4e0e\u5f7c\u5973\u4e4b\u604b<\/li>\n<li>\u4e3a\u4e3b\u4eba\u732e\u4e0a\u5723\u7f57\u7684\u751c\u871c\u4f8d\u5949<\/li>\n<\/ul>"}]}}