[{"data":1,"prerenderedAt":2130},["ShallowReactive",2],{"blog-taxonomies":3,"blog-stats":507,"post-leetcode\u002F2025-12-28-力扣百题速练javascripttypescriptvol-3":1083},[4,11,16,21,25,29,36,39,44,47,52,58,63,66,71,76,80,84,87,93,96,101,105,110,113,117,122,127,132,136,141,143,146,151,155,157,162,165,169,173,176,179,183,186,190,193,197,200,205,208,211,214,219,222,228,234,237,239,245,249,253,256,260,266,271,276,281,283,287,290,293,298,301,304,306,308,311,314,316,318,321,327,332,337,342,347,352,354,356,358,361,365,367,369,371,374,376,378,381,386,390,393,396,400,404,407,411,413,415,417,421,423,425,428,431,433,435,437,439,441,443,446,448,450,454,456,459,461,463,465,467,469,471,473,477,483,486,488,491,493,495,497,499,501,503,505],{"category":5,"tags":6},"笔记",[7,8,9,10],"QQ","插件","LiteLoader","美化",{"category":12,"tags":13},"其他",[14,15,10],"博客","IP签名",{"category":17,"tags":18},"杂谈",[19,20],"互联网","观点",{"category":5,"tags":22},[14,23,24],"GitHub","数据可视化",{"category":5,"tags":26},[14,27,28],"访问统计","不蒜子",{"category":30,"tags":31},"工具",[32,33,34,35],"Python","爬虫","选课脚本","广州大学",{"category":5,"tags":37},[38,5],"数学分析",{"category":40,"tags":41},"算法",[42,40,43],"数据结构","线性表",{"category":40,"tags":45},[42,46],"复习",{"category":5,"tags":48},[49,50,51],"高等代数","线性代数","知识点",{"category":5,"tags":53},[14,54,55,56,57],"Typora","PicGo","图床","Markdown",{"category":30,"tags":59},[60,61,62],"Jupyter","工具配置","中文",{"category":30,"tags":64},[65,61,10],"VSCode",{"category":30,"tags":67},[68,69,70,35],"路由器","OpenWrt","校园网",{"category":12,"tags":72},[73,74,75],"网络协议","Wireshark","DEVP2P",{"category":5,"tags":77},[73,74,78,79],"Lua","解码器",{"category":5,"tags":81},[82,5,83],"常微分方程","数学",{"category":5,"tags":85},[86,5,83],"概率论",{"category":30,"tags":88},[89,90,91,92],"Docker","WSL","Windows","磁盘清理",{"category":30,"tags":94},[32,33,95,35],"课程表",{"category":5,"tags":97},[14,98,99,100],"Hexo","Gitalk","评论系统",{"category":5,"tags":102},[14,103,98,104],"Obsidian","写作工具",{"category":12,"tags":106},[107,108,109],"课题研究","泊松分布","参数估计",{"category":12,"tags":111},[107,108,109,112],"组会",{"category":12,"tags":114},[109,115,108,116],"IM模型","统计学",{"category":17,"tags":118},[119,120,121],"软考","网络规划","信息系统项目管理",{"category":30,"tags":123},[124,125,126],"Arch Linux","AppImage","Linux",{"category":5,"tags":128},[129,130,131],"编程语言","计算机科学","内存管理",{"category":5,"tags":133},[134,135],"Canvas","前端",{"category":5,"tags":137},[14,138,139,140],"GitHub Actions","Vite","部署",{"category":5,"tags":142},[135],{"category":5,"tags":144},[135,145],"系统设计",{"category":5,"tags":147},[135,148,149,150],"安全","XSS","CSRF",{"category":152,"tags":153},"项目",[134,154],"PixiJS",{"category":152,"tags":156},null,{"category":40,"tags":158},[42,159,160,161],"栈","队列","JavaScript",{"category":40,"tags":163},[42,164,161],"哈希表",{"category":5,"tags":166},[167,161,168],"ES6","Set",{"category":40,"tags":170},[40,171,172],"动态规划","背包问题",{"category":40,"tags":174},[40,175],"滑动窗口",{"category":40,"tags":177},[42,178,161],"链表",{"category":40,"tags":180},[40,181,161,182],"ACM","面试",{"category":40,"tags":184},[40,161,185],"数据类型转换",{"category":40,"tags":187},[42,188,178,189],"顺序表","TypeScript",{"category":5,"tags":191},[135,154,134,192],"渲染",{"category":5,"tags":194},[135,195,134,196],"富文本编辑","wangEditor",{"category":40,"tags":198},[199,40,178],"力扣",{"category":5,"tags":201},[202,203,204,91],"DNS","加密","网络安全",{"category":5,"tags":206},[135,207],"Axios",{"category":5,"tags":209},[135,207,189,210],"接口封装",{"category":5,"tags":212},[135,213,145],"JWT",{"category":152,"tags":215},[134,216,217,154,218],"画布","React","项目开发",{"category":17,"tags":220},[221],"日志",{"category":5,"tags":223},[224,225,226,227],"Neo4j","图数据库","中心度分析","PageRank",{"category":12,"tags":229},[230,231,232,233],"论文","机器学习","随机森林","保险欺诈",{"category":5,"tags":235},[236],"人工智能",{"category":5,"tags":238},[231,40,32],{"category":12,"tags":240},[241,242,243,244],"共识算法","最长链","区块链","算法设计",{"category":5,"tags":246},[161,247,248,135],"闭包","作用域",{"category":5,"tags":250},[14,138,251,252],"RSS","自动化",{"category":30,"tags":254},[89,90,91,255],"安装",{"category":30,"tags":257},[258,91,259],"MSYS2","开发环境",{"category":5,"tags":261},[262,263,264,265],"团队协作","Git","Commit规范","代码审查",{"category":30,"tags":267},[268,269,270],"oh-my-posh","终端美化","CLI",{"category":5,"tags":272},[273,274,275],"上下文工程","Agent","RAG",{"category":5,"tags":277},[278,279,280],"前端工程化","技术选型","工程基建",{"category":5,"tags":282},[275],{"category":5,"tags":284},[285,286],"SDD","规格驱动开发",{"category":5,"tags":288},[289],"neovim",{"category":5,"tags":291},[292],"技术写作",{"category":5,"tags":294},[295,32,296,89,297],"FastAPI","后端","工程实践",{"category":152,"tags":299},[274,300],"Harness Engineering",{"category":5,"tags":302},[303],"RFC",{"category":152,"tags":305},[274,300,275],{"category":152,"tags":307},[274],{"category":40,"tags":309},[199,40,161,310],"两数之和",{"category":40,"tags":312},[199,40,161,313],"双指针",{"category":40,"tags":315},[199,40,161,178],{"category":40,"tags":317},[199,40,161,175],{"category":40,"tags":319},[199,40,161,320],"回溯",{"category":5,"tags":322},[323,324,325,326],"分布式处理与计算","Spark","Scala","RDD",{"category":5,"tags":328},[323,329,330,331],"线性回归","逻辑回归","监督学习",{"category":5,"tags":333},[323,334,335,336],"数值优化","牛顿法","收敛性",{"category":5,"tags":338},[323,339,340,341],"PCA","数据降维","正则化",{"category":5,"tags":343},[323,344,345,346],"聚类","层次聚类","K-Means",{"category":5,"tags":348},[323,349,350,351],"随机模拟","统计推断","EM算法",{"category":5,"tags":353},[24],{"category":5,"tags":355},[24],{"category":5,"tags":357},[24],{"category":40,"tags":359},[42,360],"图论",{"category":40,"tags":362},[42,363,364],"树","二叉树",{"category":40,"tags":366},[42,160],{"category":40,"tags":368},[42],{"category":40,"tags":370},[42,159],{"category":40,"tags":372},[42,40,373],"复杂度分析",{"category":40,"tags":375},[42,43,178],{"category":40,"tags":377},[42,43,188],{"category":40,"tags":379},[42,380],"基础概念",{"category":17,"tags":382},[383,384,385],"随记","照片","高中",{"category":17,"tags":387},[383,388,389],"团建","战地",{"category":17,"tags":391},[383,392],"生活",{"category":17,"tags":394},[383,395],"文学",{"category":17,"tags":397},[383,398,399],"SCP","模因",{"category":17,"tags":401},[383,402,403],"画集","艺术",{"category":17,"tags":405},[14,406,383],"写作",{"category":17,"tags":408},[383,409,410],"音乐","摇滚",{"category":17,"tags":412},[383,392],{"category":17,"tags":414},[383,409],{"category":17,"tags":416},[383,35,392],{"category":17,"tags":418},[383,419,420],"同人","手书",{"category":17,"tags":422},[383,392],{"category":17,"tags":424},[383,392],{"category":17,"tags":426},[383,427],"植物",{"category":17,"tags":429},[383,430],"读书",{"category":17,"tags":432},[383,392],{"category":17,"tags":434},[383,392],{"category":17,"tags":436},[383,392],{"category":17,"tags":438},[383,392],{"category":17,"tags":440},[383,392],{"category":17,"tags":442},[383,392],{"category":17,"tags":444},[14,445,383],"一周年",{"category":17,"tags":447},[383,392],{"category":17,"tags":449},[383,392],{"category":17,"tags":451},[35,452,453],"开源组织","SITE-193",{"category":17,"tags":455},[383,392],{"category":17,"tags":457},[383,458],"年末",{"category":17,"tags":460},[383,392],{"category":17,"tags":462},[383,392],{"category":17,"tags":464},[14,17],{"category":17,"tags":466},[383,392],{"category":17,"tags":468},[383,392],{"category":17,"tags":470},[383,392],{"category":17,"tags":472},[383,392],{"category":17,"tags":474},[383,475,476],"游戏","Control",{"category":30,"tags":478},[479,480,481,482],"Quadim","图像处理","四叉树","Rust",{"category":17,"tags":484},[14,485],"上线纪念",{"category":17,"tags":487},[383,395],{"category":30,"tags":489},[203,490],"测试",{"category":17,"tags":492},[383],{"category":17,"tags":494},[383,392],{"category":17,"tags":496},[383],{"category":5,"tags":498},[40],{"category":5,"tags":500},[40],{"category":5,"tags":502},[40],{"category":5,"tags":504},[40],{"category":5,"tags":506},[40],[508,512,516,520,524,528,532,536,540,544,548,552,556,560,564,568,572,576,579,583,587,590,594,598,602,606,610,614,618,622,626,630,634,638,642,646,650,654,658,662,666,670,674,678,682,686,690,694,698,702,706,710,714,718,722,726,730,734,738,742,746,750,754,758,762,766,770,774,778,782,786,790,794,798,801,805,809,813,817,821,825,829,833,837,841,845,849,853,857,861,865,869,873,877,881,885,889,893,897,901,904,907,911,915,919,923,927,930,934,938,942,946,950,954,957,961,965,969,973,977,981,984,988,992,996,1000,1004,1007,1011,1015,1019,1023,1027,1031,1035,1039,1043,1047,1051,1055,1059,1063,1067,1071,1075,1079],{"path":509,"words":510,"published":511,"date":156},"\u002Fposts\u002F2024\u002F2024-06-25-liteloaderqqnt",1296,"2024-06-25 11:03:08",{"path":513,"words":514,"published":515,"date":156},"\u002Fposts\u002F2024\u002F2024-06-26-ip签名",0,"2024-06-26 22:53:53",{"path":517,"words":518,"published":519,"date":156},"\u002Fposts\u002F2024\u002F2024-06-29-何加盐中文互联网正在加速崩塌",4853,"2024-06-29 00:47:13",{"path":521,"words":522,"published":523,"date":156},"\u002Fposts\u002F2024\u002F2024-07-12-github-chart",270,"2024-07-12 20:02:50",{"path":525,"words":526,"published":527,"date":156},"\u002Fposts\u002F2024\u002F2024-07-14-访客数统计",192,"2024-07-24 01:34:28",{"path":529,"words":530,"published":531,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-广大选课脚本",110,"2024-07-26 01:34:28",{"path":533,"words":534,"published":535,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数学分析笔记其二",14,"2024-07-26 23:54:02",{"path":537,"words":538,"published":539,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习其二",12856,"2024-07-26 02:48:08",{"path":541,"words":542,"published":543,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-数据结构复习相关",32856,"2024-07-26 02:24:14",{"path":545,"words":546,"published":547,"date":156},"\u002Fposts\u002F2024\u002F2024-07-26-线性代数与空间解析几何知识点全汇总",6110,"2024-07-26 03:27:55",{"path":549,"words":550,"published":551,"date":156},"\u002Fposts\u002F2024\u002F2024-07-31-typora-picgo-兰空图床打造markdown写作环境",311,"2024-07-31 12:56:23",{"path":553,"words":554,"published":555,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-jupyter配置中文",441,"2024-09-02 23:49:05",{"path":557,"words":558,"published":559,"date":156},"\u002Fposts\u002F2024\u002F2024-09-02-自定义vscode背景图片",100,"2024-09-02 23:39:00",{"path":561,"words":562,"published":563,"date":156},"\u002Fposts\u002F2024\u002F2024-09-03-制作gzhu校园网路由器",1423,"2024-09-03 23:43:18",{"path":565,"words":566,"published":567,"date":156},"\u002Fposts\u002F2024\u002F2024-09-26-09-25-2024",136,"2024-09-26 00:49:26",{"path":569,"words":570,"published":571,"date":156},"\u002Fposts\u002F2024\u002F2024-11-04-创建一个网络包解码器分析devp2p协议",1943,"2024-11-04 16:45:19",{"path":573,"words":574,"published":575,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记常微分",16,"2024-12-09 22:51:00",{"path":577,"words":574,"published":578,"date":156},"\u002Fposts\u002F2024\u002F2025-03-09-2024一些笔记概率论","2025-03-09 22:51:00",{"path":580,"words":581,"published":582,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-windows下释放docker占用的wsl空间",164,"2025-03-01 13:54:15",{"path":584,"words":585,"published":586,"date":156},"\u002Fposts\u002F2025\u002F2025-03-01-爬虫实战-爬取广州大学课程表",774,"2025-03-01 14:55:48",{"path":588,"words":530,"published":589,"date":156},"\u002Fposts\u002F2025\u002F2025-04-03-hexo集成gitalk的问题","2025-04-03 14:26:34",{"path":591,"words":592,"published":593,"date":156},"\u002Fposts\u002F2025\u002F2025-09-22-记一次配置obsidian配合hexo写博客",92,"2025-09-22 16:47:52",{"path":595,"words":596,"published":597,"date":156},"\u002Fposts\u002F2025\u002F2025-10-24-10-20课题",204,"2025-10-24 08:15:01",{"path":599,"words":600,"published":601,"date":156},"\u002Fposts\u002F2025\u002F2025-11-02-组会朝花夕拾",501,"2025-11-02 18:56:59",{"path":603,"words":604,"published":605,"date":156},"\u002Fposts\u002F2025\u002F2025-11-05-基于随机加权推断模型im的参数估计算法",481,"2025-11-05 20:51:41",{"path":607,"words":608,"published":609,"date":156},"\u002Fposts\u002F2025\u002F2025-11-09-关于软考高项网规",884,"2025-11-09 19:54:52",{"path":611,"words":612,"published":613,"date":156},"\u002Fposts\u002F2025\u002F2025-11-17-arch-linux运行appimage相关",365,"2025-11-17 09:59:59",{"path":615,"words":616,"published":617,"date":156},"\u002Fposts\u002F2025\u002F2025-11-19-相关概念",2058,"2025-11-19 11:06:20",{"path":619,"words":620,"published":621,"date":156},"\u002Fposts\u002F2025\u002F2025-11-21-web可视化实践canvas",6393,"2025-11-21 14:50:48",{"path":623,"words":624,"published":625,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-使用-github-actions-自动部署基于vite的项目到-github-pages",272,"2025-11-23 01:59:24",{"path":627,"words":628,"published":629,"date":156},"\u002Fposts\u002F2025\u002F2025-11-22-关于前端包管理器npmpnpmyarn和bun",4890,"2025-11-22 21:21:15",{"path":631,"words":632,"published":633,"date":156},"\u002Fposts\u002F2025\u002F2025-11-23-undo-redo-机制具体实现",7839,"2025-11-23 19:15:00",{"path":635,"words":636,"published":637,"date":156},"\u002Fposts\u002F2025\u002F2025-11-27-前端安全-关于xss与crsf",1866,"2025-11-28 02:05:25",{"path":639,"words":640,"published":641,"date":156},"\u002Fposts\u002F2025\u002F2025-12-05-现代协同-2d-画布编辑器pixijs-v8",4285,"2025-12-05 02:00:16",{"path":643,"words":644,"published":645,"date":156},"\u002Fposts\u002F2025\u002F2025-12-07-杂谈-课题组系统设计",3710,"2025-12-07 21:09:33",{"path":647,"words":648,"published":649,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-javascript中的数组方法与栈stack和队列queue的实现",474,"2025-11-29 16:58:15",{"path":651,"words":652,"published":653,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript-实现哈希表",189,"2025-11-27 11:31:39",{"path":655,"words":656,"published":657,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于javascript的set方法",332,"2025-12-25 15:26:18",{"path":659,"words":660,"published":661,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于动态规划(背包问题为例)",1238,"2025-11-17 18:24:04",{"path":663,"words":664,"published":665,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于滑动窗口",712,"2025-11-20 15:04:40",{"path":667,"words":668,"published":669,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-关于链表(javascript)",500,"2025-11-25 13:00:48",{"path":671,"words":672,"published":673,"date":156},"\u002Fposts\u002F2025\u002F2025-12-25-面试算法acm模式构建构建输入输出模板",2051,"2025-12-25 23:09:45",{"path":675,"words":676,"published":677,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascript-数字数组字符串的处理",483,"2025-12-26 11:20:25",{"path":679,"words":680,"published":681,"date":156},"\u002Fposts\u002F2025\u002F2025-12-26-javascripttypescript-的顺序表链表实现",446,"2025-12-26 12:16:12",{"path":683,"words":684,"published":685,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-1-实现基础yuan素渲染和状态控制",2136,"2025-12-28 01:23:08",{"path":687,"words":688,"published":689,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-前端画布设计vol-2-实现富文本编辑",1838,"2025-12-28 02:58:47",{"path":691,"words":692,"published":693,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-算法刷题-关于链表操作",2135,"2025-12-27 16:12:42",{"path":695,"words":696,"published":697,"date":156},"\u002Fposts\u002F2025\u002F2025-12-27-配置dnscrypt-proxy实现加密dns服务windows",1899,"2025-11-15 01:06:37",{"path":699,"words":700,"published":701,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-关于网络请求xhrajaxfetchaxios",7788,"2025-10-28 15:48:46",{"path":703,"words":704,"published":705,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-接口封装与请求规范axios为例",2373,"2025-12-29 01:01:18",{"path":707,"words":708,"published":709,"date":156},"\u002Fposts\u002F2025\u002F2025-12-28-前端-身份验证管理-基于-jwt-token-的实现",2709,"2025-11-23 22:04:41",{"path":711,"words":712,"published":713,"date":156},"\u002Fposts\u002F2025\u002F2025-12-29-记canvas画布项目开发",6254,"2025-12-29 04:52:15",{"path":715,"words":716,"published":717,"date":156},"\u002Fposts\u002F2025\u002Fabout-site",116,"2025-03-31 16:44:24",{"path":719,"words":720,"published":721,"date":156},"\u002Fposts\u002F2025\u002F使用neo4j图数据科学库gds进行中心度分析",143,"2025-04-02 23:37:24",{"path":723,"words":724,"published":725,"date":156},"\u002Fposts\u002F2026\u002F2026-01-03-论文实训草稿",10445,"2026-01-03 14:10:49",{"path":727,"words":728,"published":729,"date":156},"\u002Fposts\u002F2026\u002F2026-01-06-人工智能导论",11461,"2026-01-07 03:25:49",{"path":731,"words":732,"published":733,"date":156},"\u002Fposts\u002F2026\u002F2026-01-07-机器学习相关算法",82,"2026-01-08 02:28:13",{"path":735,"words":736,"published":737,"date":156},"\u002Fposts\u002F2026\u002F2026-01-16-关于低复杂度最长链共识算法设计",4466,"2026-01-16 10:33:23",{"path":739,"words":740,"published":741,"date":156},"\u002Fposts\u002F2026\u002F2026-01-19-杂记2026-01-19",5754,"2026-01-20 01:03:26",{"path":743,"words":744,"published":745,"date":156},"\u002Fposts\u002F2026\u002F2026-01-22-github-action-自动同步博客到-github-主页",1069,"2026-01-22 16:31:47",{"path":747,"words":748,"published":749,"date":156},"\u002Fposts\u002F2026\u002F2026-03-01-windows-wsl安装docker",257,"2026-03-01 20:55:31",{"path":751,"words":752,"published":753,"date":156},"\u002Fposts\u002F2026\u002F2026-03-14-关于-msys2",701,"2026-03-15 03:05:04",{"path":755,"words":756,"published":757,"date":156},"\u002Fposts\u002F2026\u002F2026-03-28-团队项目协作规范随记",2419,"2026-03-29 05:33:50",{"path":759,"words":760,"published":761,"date":156},"\u002Fposts\u002F2026\u002F2026-03-29-oh-my-posh配置分享",104,"2026-03-29 16:34:43",{"path":763,"words":764,"published":765,"date":156},"\u002Fposts\u002F2026\u002F2026-06-13-从上下文工程到-agent-harness-engineering",8840,"2026-06-13 21:06:20",{"path":767,"words":768,"published":769,"date":156},"\u002Fposts\u002F2026\u002F2026-07-13-简谈前端基建质量标准与ai友好建设",3814,"2026-07-13 21:06:20",{"path":771,"words":772,"published":773,"date":156},"\u002Fposts\u002F2026\u002F2026-07-15-agentic-rag-系统实践",13357,"2026-07-15 21:06:20",{"path":775,"words":776,"published":777,"date":156},"\u002Fposts\u002F2026\u002F2026-07-18-简谈sdd规范驱动开发-copy",4476,"2026-07-18 11:06:20",{"path":779,"words":780,"published":781,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-个人neovim配置分享",366,"2026-07-22 13:46:50",{"path":783,"words":784,"published":785,"date":156},"\u002Fposts\u002F2026\u002F2026-07-20-关于技术写作-设计文档",6763,"2026-07-20 13:46:50",{"path":787,"words":788,"published":789,"date":156},"\u002Fposts\u002F2026\u002F2026-07-29-fastapi-工程实践随记",3417,"2026-07-29 04:58:34",{"path":791,"words":792,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-06-19-rfc-liskin_code_agent",3563,"2026-06-19 15:18:20",{"path":795,"words":796,"published":797,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-07-25-rfc-glushkov_ogas",13461,"2026-07-28 23:46:50",{"path":799,"words":800,"published":793,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002F2026-08-03-adr-ogas-arkhiv",2698,{"path":802,"words":803,"published":804,"date":156},"\u002Fposts\u002Frfc_agentic_project\u002Frag\u002F2026-08-12-arkhiv_rag-vol-1",4366,"2026-08-12 15:18:20",{"path":806,"words":807,"published":808,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-25-力扣百题速练javascripttypescriptvol-1",3108,"2025-12-25 13:57:08",{"path":810,"words":811,"published":812,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-26-力扣百题速练javascripttypescriptvol-2",3185,"2025-12-26 13:57:08",{"path":814,"words":815,"published":816,"date":156},"\u002Fposts\u002Fleetcode\u002F2025-12-28-力扣百题速练javascripttypescriptvol-3",2533,"2025-12-29 02:15:44",{"path":818,"words":819,"published":820,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-17-力扣百题速练javascripttypescriptvol-4",3024,"2026-01-17 22:53:01",{"path":822,"words":823,"published":824,"date":156},"\u002Fposts\u002Fleetcode\u002F2026-01-19-力扣百题速练javascripttypescriptvol-5",293,"2026-01-19 15:15:12",{"path":826,"words":827,"published":828,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算spark系统与scala语言",4320,"2026-07-06 14:10:49",{"path":830,"words":831,"published":832,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算分类与回归分析",2081,"2026-07-07 12:40:29",{"path":834,"words":835,"published":836,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数值优化方法",2182,"2026-07-07 13:50:29",{"path":838,"words":839,"published":840,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算数据降维",1583,"2026-07-07 21:50:29",{"path":842,"words":843,"published":844,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算聚类分析",1882,"2026-07-07 16:50:29",{"path":846,"words":847,"published":848,"date":156},"\u002Fposts\u002F分布式处理与计算\u002F分布式处理与计算随机模拟与统计推断",2433,"2026-07-06 22:40:29",{"path":850,"words":851,"published":852,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-基本图像",10011,"2026-06-14 20:18:20",{"path":854,"words":855,"published":856,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-14-数据可视化-概论",10030,"2026-06-14 15:18:20",{"path":858,"words":859,"published":860,"date":156},"\u002Fposts\u002F数据可视化\u002F2026-06-15-数据可视化-可视化库",2032,"2026-06-15 20:18:20",{"path":862,"words":863,"published":864,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-图",5451,"2025-04-15 20:48:06",{"path":866,"words":867,"published":868,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-树",4211,"2025-04-30 02:19:06",{"path":870,"words":871,"published":872,"date":156},"\u002Fposts\u002F数据结构\u002F2025-09-29-数据结构-队列",921,"2025-04-11 15:30:08",{"path":874,"words":875,"published":876,"date":156},"\u002Fposts\u002F数据结构\u002F关于数据结构的一些想法",456,"2025-04-04 19:13:49",{"path":878,"words":879,"published":880,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-栈",920,"2025-04-18 00:17:37",{"path":882,"words":883,"published":884,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-算法复杂度",2153,"2025-04-05 16:09:55",{"path":886,"words":887,"published":888,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表链表",4572,"2025-04-06 00:24:40",{"path":890,"words":891,"published":892,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-线性表顺序表",4191,"2025-04-05 22:09:59",{"path":894,"words":895,"published":896,"date":156},"\u002Fposts\u002F数据结构\u002F数据结构-绪论",2881,"2025-04-05 11:31:22",{"path":898,"words":899,"published":156,"date":900},"\u002Fposts\u002F杂记\u002F2023-12-26-2023年12月26日",7,"2023-12-26 23:51:33",{"path":902,"words":899,"published":156,"date":903},"\u002Fposts\u002F杂记\u002F2024-01-01-2024团建","2024-01-01 01:51:27",{"path":905,"words":581,"published":156,"date":906},"\u002Fposts\u002F杂记\u002F2024-01-09-随记","2024-01-09 20:50:35",{"path":908,"words":909,"published":156,"date":910},"\u002Fposts\u002F杂记\u002F2024-03-12-花名",5275,"2024-03-12 16:04:23",{"path":912,"words":913,"published":156,"date":914},"\u002Fposts\u002F杂记\u002F2024-04-15-逆模因",1353,"2024-04-15 00:26:16",{"path":916,"words":917,"published":156,"date":918},"\u002Fposts\u002F杂记\u002F2024-05-03-艺作",27,"2024-05-03 00:01:00",{"path":920,"words":921,"published":156,"date":922},"\u002Fposts\u002F杂记\u002F2024-05-21-关于博客",1720,"2024-02-21 23:21:11",{"path":924,"words":925,"published":156,"date":926},"\u002Fposts\u002F杂记\u002F2024-06-20-dnvrc维克多崔专访-2023",2036,"2024-06-20 00:28:39",{"path":928,"words":760,"published":156,"date":929},"\u002Fposts\u002F杂记\u002F2024-06-25-6月25日随记","2024-06-25 12:46:36",{"path":931,"words":932,"published":156,"date":933},"\u002Fposts\u002F杂记\u002F2024-06-25-歌名-想見星星",148,"2024-06-25 22:47:59",{"path":935,"words":936,"published":156,"date":937},"\u002Fposts\u002F杂记\u002F2024-07-11-桂花岗",6,"2024-07-11 00:28:17",{"path":939,"words":940,"published":156,"date":941},"\u002Fposts\u002F杂记\u002F2024-07-15-rolling-bocci",9,"2024-07-15 21:25:56",{"path":943,"words":944,"published":156,"date":945},"\u002Fposts\u002F杂记\u002F2024-07-22-七月九日",34,"2024-07-09 17:54:23",{"path":947,"words":948,"published":156,"date":949},"\u002Fposts\u002F杂记\u002F2024-07-22-六月随记",1052,"2024-07-22 01:03:19",{"path":951,"words":952,"published":156,"date":953},"\u002Fposts\u002F杂记\u002F2024-07-22-石菖蒲",41,"2024-07-10 01:26:05",{"path":955,"words":514,"published":156,"date":956},"\u002Fposts\u002F杂记\u002F2024-07-23-新书","2024-07-23 01:05:49",{"path":958,"words":959,"published":156,"date":960},"\u002Fposts\u002F杂记\u002F2024-07-29-年前",74,"2024-07-29 23:59:07",{"path":962,"words":963,"published":156,"date":964},"\u002Fposts\u002F杂记\u002F2024-07-30-周边",138,"2024-07-30 02:03:23",{"path":966,"words":967,"published":156,"date":968},"\u002Fposts\u002F杂记\u002F2024-07-31-2024-7-31日",185,"2024-07-31 01:21:52",{"path":970,"words":971,"published":156,"date":972},"\u002Fposts\u002F杂记\u002F2024-08-02-八月",1710,"2024-08-30 00:31:02",{"path":974,"words":975,"published":156,"date":976},"\u002Fposts\u002F杂记\u002F2024-09-01-九月",1484,"2024-09-26 16:30:15",{"path":978,"words":979,"published":156,"date":980},"\u002Fposts\u002F杂记\u002F2024-09-08-2024年9月8日",97,"2024-09-08 13:59:36",{"path":982,"words":514,"published":156,"date":983},"\u002Fposts\u002F杂记\u002F2024-09-19-博客站的一周年","2024-09-18 23:36:24",{"path":985,"words":986,"published":156,"date":987},"\u002Fposts\u002F杂记\u002F2024-10-03-十月",1028,"2024-10-31 23:54:27",{"path":989,"words":990,"published":156,"date":991},"\u002Fposts\u002F杂记\u002F2024-11-04-十一月",2134,"2024-11-30 00:04:39",{"path":993,"words":994,"published":156,"date":995},"\u002Fposts\u002F杂记\u002F2024-11-10-gzhu-site-193",80,"2024-11-10 19:19:12",{"path":997,"words":998,"published":156,"date":999},"\u002Fposts\u002F杂记\u002F2024-12-01-十二月",455,"2024-12-30 23:13:47",{"path":1001,"words":1002,"published":156,"date":1003},"\u002Fposts\u002F杂记\u002F2024-12-21-年末",23,"2024-12-21 23:21:49",{"path":1005,"words":522,"published":156,"date":1006},"\u002Fposts\u002F杂记\u002F2025-01-30-一月","2025-01-30 23:44:41",{"path":1008,"words":1009,"published":156,"date":1010},"\u002Fposts\u002F杂记\u002F2025-03-01-二月",224,"2025-02-28 00:11:08",{"path":1012,"words":1013,"published":156,"date":1014},"\u002Fposts\u002F杂记\u002F2025-03-01-博客杂谈",344,"2025-03-01 16:03:18",{"path":1016,"words":1017,"published":156,"date":1018},"\u002Fposts\u002F杂记\u002F2025-03-05-三月",2090,"2025-03-05 19:17:28",{"path":1020,"words":1021,"published":156,"date":1022},"\u002Fposts\u002F杂记\u002F2025-07-10-七月",361,"2025-07-10 22:04:32",{"path":1024,"words":1025,"published":156,"date":1026},"\u002Fposts\u002F杂记\u002F2025-09-21-九月",781,"2025-09-21 20:53:37",{"path":1028,"words":1029,"published":156,"date":1030},"\u002Fposts\u002F杂记\u002F2025-10-09-十月",591,"2025-10-09 00:35:07",{"path":1032,"words":1033,"published":156,"date":1034},"\u002Fposts\u002F杂记\u002Fcontrol",13,"2023-09-25 13:03:59",{"path":1036,"words":1037,"published":156,"date":1038},"\u002Fposts\u002F杂记\u002Fquadim四叉树图像处理",1094,"2023-10-21 11:27:06",{"path":1040,"words":1041,"published":156,"date":1042},"\u002Fposts\u002F杂记\u002Fsuccess",24,"2023-09-22 15:59:07",{"path":1044,"words":1045,"published":156,"date":1046},"\u002Fposts\u002F杂记\u002F三光年",295,"2023-11-18 04:18:40",{"path":1048,"words":1049,"published":156,"date":1050},"\u002Fposts\u002F杂记\u002F加密测试",961,"2023-11-21 14:24:01",{"path":1052,"words":1053,"published":156,"date":1054},"\u002Fposts\u002F杂记\u002F啊啊啊啊啊啊啊",54,"2023-09-20 17:29:33",{"path":1056,"words":1057,"published":156,"date":1058},"\u002Fposts\u002F杂记\u002F杂谈",124,"2023-09-25 23:11:32",{"path":1060,"words":1061,"published":156,"date":1062},"\u002Fposts\u002F杂记\u002F艹",25,"2023-10-21 17:40:43",{"path":1064,"words":1065,"published":1066,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习卷积神经网络",3168,"2026-06-07 11:23:08",{"path":1068,"words":1069,"published":1070,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习循环神经网络",2348,"2026-06-07 11:33:08",{"path":1072,"words":1073,"published":1074,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习改进学习方法",3360,"2026-06-07 10:13:08",{"path":1076,"words":1077,"published":1078,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习深度生成模型",2727,"2026-06-07 11:43:08",{"path":1080,"words":1081,"published":1082,"date":156},"\u002Fposts\u002F神经网络\u002F神经网络与深度学习神经网络基础",3205,"2026-06-07 10:03:08",{"id":1084,"title":1085,"abbrlink":1086,"body":1087,"category":40,"cover":156,"date":156,"description":1093,"extension":2120,"mathjax":2121,"meta":2122,"navigation":2121,"path":814,"published":816,"readingMinutes":2125,"seo":2126,"stem":2127,"sticky":156,"swiper_index":156,"tags":2128,"updated":156,"words":815,"__hash__":2129},"posts\u002Fposts\u002Fleetcode\u002F2025-12-28-力扣百题速练（Javascript、TypeScript）Vol-3.md","2025-12-28-力扣百题速练（Javascript、TypeScript）Vol.3","42325",{"type":1088,"value":1089,"toc":2107},"minimark",[1090,1094,1099,1107,1112,1119,1134,1139,1148,1153,1162,1167,1196,1199,1206,1209,1212,1215,1221,1227,1233,1239,1245,1251,1257,1263,1266,1275,1278,1280,1284,1295,1301,1307,1313,1316,1319,1327,1333,1341,1347,1351,1354,1357,1361,1371,1377,1383,1386,1393,1396,1422,1428,1434,1440,1446,1448,1450,1454,1457,1462,1470,1476,1479,1483,1494,1502,1505,1509,1514,1527,1531,1536,1548,1554,1561,1626,1628,1630,1634,1660,1671,1687,1691,1726,1730,1774,1780,1783,1806,1810,1839,1851,1878,1882,1897,1901,1916,1919,1925,1927,1929,1933,1958,1962,1976,1980,1994,1997,2003,2007,2022,2044,2056,2061,2075,2080,2091,2097,2103,2105],[1091,1092,1093],"p",{},"依旧刷题中",[1095,1096,1098],"h2",{"id":1097},"_21合并两个有序链表","21.合并两个有序链表",[1091,1100,1101,1102,1106],{},"将两个升序链表合并为一个新的  ",[1103,1104,1105],"strong",{},"升序","  链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。",[1091,1108,1109],{},[1103,1110,1111],{},"示例 1：",[1091,1113,1114],{},[1115,1116],"img",{"alt":1117,"src":1118},"","https:\u002F\u002Fassets.leetcode.com\u002Fuploads\u002F2020\u002F10\u002F03\u002Fmerge_ex1.jpg",[1091,1120,1121,1122,1126,1127,1130,1131],{},"输入：l1 = ",[1123,1124,1125],"code",{},"[1,2,4]",", l2 = ",[1123,1128,1129],{},"[1,3,4]","\n输出：",[1123,1132,1133],{},"[1,1,2,3,4,4]",[1091,1135,1136],{},[1103,1137,1138],{},"示例 2：",[1091,1140,1121,1141,1126,1144,1130,1146],{},[1123,1142,1143],{},"[]",[1123,1145,1143],{},[1123,1147,1143],{},[1091,1149,1150],{},[1103,1151,1152],{},"示例 3：",[1091,1154,1121,1155,1126,1157,1130,1160],{},[1123,1156,1143],{},[1123,1158,1159],{},"[0]",[1123,1161,1159],{},[1091,1163,1164],{},[1103,1165,1166],{},"提示：",[1168,1169,1170,1177,1182],"ul",{},[1171,1172,1173,1174],"li",{},"两个链表的节点数目范围是  ",[1123,1175,1176],{},"[0, 50]",[1171,1178,1179],{},[1123,1180,1181],{},"-100 \u003C= Node.val \u003C= 100",[1171,1183,1184,1187,1188,1191,1192,1195],{},[1123,1185,1186],{},"l1","  和  ",[1123,1189,1190],{},"l2","  均按  ",[1103,1193,1194],{},"非递减顺序","  排列",[1091,1197,1198],{},"Related Topics",[1168,1200,1201,1204],{},[1171,1202,1203],{},"递归",[1171,1205,178],{},[1091,1207,1208],{},"解法很简单，假设输入两个有序链表：",[1091,1210,1211],{},"list1: 1 → 2 → 4 list2: 1 → 3 → 4",[1091,1213,1214],{},"合并过程逐步展示指针变化（→ 表示 next 指针，cur 为当前构建指针）：",[1091,1216,1217,1220],{},[1103,1218,1219],{},"初始状态"," dummy → null cur = dummy list1: 1 → 2 → 4 list2: 1 → 3 → 4",[1091,1222,1223,1226],{},[1103,1224,1225],{},"步骤 1","：比较 list1.val(1) ≤ list2.val(1) cur.next = list1 的 1 cur 前进 → 指向 1 list1 前进 → 2 → 4 当前新链表：dummy → 1",[1091,1228,1229,1232],{},[1103,1230,1231],{},"步骤 2","：比较 list1.val(2) > list2.val(1) cur.next = list2 的 1 cur 前进 → 指向 1 list2 前进 → 3 → 4 当前新链表：dummy → 1 → 1",[1091,1234,1235,1238],{},[1103,1236,1237],{},"步骤 3","：比较 list1.val(2) ≤ list2.val(3) cur.next = list1 的 2 cur 前进 → 指向 2 list1 前进 → 4 当前新链表：dummy → 1 → 1 → 2",[1091,1240,1241,1244],{},[1103,1242,1243],{},"步骤 4","：比较 list1.val(4) > list2.val(3) cur.next = list2 的 3 cur 前进 → 指向 3 list2 前进 → 4 当前新链表：dummy → 1 → 1 → 2 → 3",[1091,1246,1247,1250],{},[1103,1248,1249],{},"步骤 5","：比较 list1.val(4) ≤ list2.val(4) cur.next = list1 的 4 cur 前进 → 指向 4 list1 前进 → null 当前新链表：dummy → 1 → 1 → 2 → 3 → 4",[1091,1252,1253,1256],{},[1103,1254,1255],{},"步骤 6","：list1 已空，剩余 list2(4) 直接接上 cur.next = list2 的 4 当前新链表：dummy → 1 → 1 → 2 → 3 → 4 → 4",[1091,1258,1259,1262],{},[1103,1260,1261],{},"最终返回","：dummy.next 结果链表：1 → 1 → 2 → 3 → 4 → 4",[1091,1264,1265],{},"该过程通过不断比较两个链表的当前节点，将较小节点直接拼接至新链表尾部（cur 后），并前进对应指针，直至处理完所有节点",[1267,1268,1273],"pre",{"className":1269,"code":1271,"language":1272,"meta":1117},[1270],"language-ts","function mergeTwoLists(list1: ListNode | null, list2: ListNode | null): ListNode | null {\n  let index = 0\n  let dum = new ListNode(1)\n\n  let cur = dum\n\n  while (list1 && list2) {\n    if (list1.val \u003C= list2.val) {\n      cur.next = list1 \u002F\u002F 将较小节点接到 cur 后\n      list1 = list1.next \u002F\u002F list1 前进\n    } else {\n      cur.next = list2\n      list2 = list2.next\n    }\n    cur = cur.next \u002F\u002F cur 前进\n  }\n\n  cur.next = list1 || list2\n  return dum.next\n}\n","ts",[1123,1274,1271],{"__ignoreMap":1117},[1276,1277],"hr",{},[1276,1279],{},[1095,1281,1283],{"id":1282},"_22括号生成","22.括号生成",[1091,1285,1286,1287,1290,1291,1294],{},"数字  ",[1123,1288,1289],{},"n","  代表生成括号的对数，请你设计一个函数，用于能够生成所有可能的并且  ",[1103,1292,1293],{},"有效的","  括号组合。",[1091,1296,1297,1298],{},"示例 1：\n输入：n = 3\n输出：",[1123,1299,1300],{},"[\"((()))\",\"(()())\",\"(())()\",\"()(())\",\"()()()\"]",[1091,1302,1303,1304],{},"示例 2：\n输入：n = 1\n输出：",[1123,1305,1306],{},"[\"()\"]",[1091,1308,1309,1310],{},"这题应该使用回溯法，",[1103,1311,1312],{},"在每一步都记录当前已经用了多少个左括号和右括号",[1091,1314,1315],{},"现在可以得到：\n只能在“前面左括号比右括号多”的情况下才能加右括号 （否则会出现 ) 先出现或者 ) 比 ( 多的非法情况）\n左括号最多只能放 n 个 （超过 n 个就超标了）\n什么时候算一条合法答案？ 正好放了 n 个左 + n 个右，也就是字符串长度达到 2n",[1091,1317,1318],{},"因此我们维护两个计数器：",[1168,1320,1321,1324],{},[1171,1322,1323],{},"left：已经使用了多少个左括号",[1171,1325,1326],{},"right：已经使用了多少个右括号",[1091,1328,1329,1332],{},[1103,1330,1331],{},"用 n=2 手推整个过程：","\n初始调用： backtrack(\"\", 0, 0)",[1267,1334,1339],{"className":1335,"code":1337,"language":1338,"meta":1117},[1336],"language-text","\"\"\n                     \u002F   \\\n                    \u002F     \\\n                   (       ×  ← 不能先放右括号（right=0, left=0，不满足 right\u003Cleft）\n                  \u002F \\\n                 \u002F   \\\n                ((    ()\n               \u002F  \\     \\\n              \u002F    \\     \\\n           (((    (())   ()(\n           ×      ×      \u002F  \\\n                       ()   ()(\n                             ×   ×\n","text",[1123,1340,1337],{"__ignoreMap":1117},[1267,1342,1345],{"className":1343,"code":1344,"language":1272,"meta":1117},[1270],"function generateParenthesis(n: number): string[] {\n  let res = []\n  function BT(curr: string, left: number, right: number) {\n    if (curr.length === 2 * n) {\n      res.push(curr)\n      return\n    }\n    if (left \u003C n) {\n      BT(curr + '(', left + 1, right)\n    }\n    if (left > right) {\n      BT(curr + ')', left, right + 1)\n    }\n  }\n  BT('', 0, 0)\n  return res\n}\n",[1123,1346,1344],{"__ignoreMap":1117},[1095,1348,1350],{"id":1349},"_23合并-k-个升序链表","23.合并 k 个升序链表",[1091,1352,1353],{},"给你一个链表数组，每个链表都已经按升序排列。",[1091,1355,1356],{},"请你将所有链表合并到一个升序链表中，返回合并后的链表。",[1091,1358,1359],{},[1103,1360,1111],{},[1091,1362,1363,1364,1130,1367,1370],{},"输入：",[1123,1365,1366],{},"lists = [[1,4,5],[1,3,4],[2,6]]",[1123,1368,1369],{},"[1,1,2,3,4,4,5,6]","\n解释：链表数组如下：",[1267,1372,1375],{"className":1373,"code":1374,"language":1338},[1336],"[\n  1->4->5,\n  1->3->4,\n  2->6\n]\n",[1123,1376,1374],{"__ignoreMap":1117},[1091,1378,1379,1380],{},"将它们合并到一个有序链表中得到\n",[1123,1381,1382],{},"1->1->2->3->4->4->5->6",[1091,1384,1385],{},"最初一版本：",[1091,1387,1388,1389,1392],{},"把 K 个链表的合并问题，",[1103,1390,1391],{},"逐步退化成多次“合并两个有序链表”的问题","。",[1091,1394,1395],{},"具体过程如下：",[1397,1398,1399,1405,1416,1419],"ol",{},[1171,1400,1401,1402],{},"先拿第一个链表作为当前结果",[1123,1403,1404],{},"（res = lists[0]）",[1171,1406,1407,1408,1411,1412,1415],{},"然后依次把后面的每个链表",[1123,1409,1410],{},"（lists[1], lists[2], …, lists[k-1]）"," ",[1103,1413,1414],{},"逐个合并","到当前结果 res 上",[1171,1417,1418],{},"每次合并都调用同一个 mergeTwoLists 函数",[1171,1420,1421],{},"最终得到的 res 就是所有链表合并后的结果\n就是：",[1267,1423,1426],{"className":1424,"code":1425,"language":1338},[1336],"res = lists[0]\nres = merge(res, lists[1])\nres = merge(res, lists[2])\nres = merge(res, lists[3])\n...\nres = merge(res, lists[k-1])\n",[1123,1427,1425],{"__ignoreMap":1117},[1267,1429,1432],{"className":1430,"code":1431,"language":1272,"meta":1117},[1270],"\u002F**\n * Definition for singly-linked list.\n * class ListNode {\n *     val: number\n *     next: ListNode | null\n *     constructor(val?: number, next?: ListNode | null) {\n *         this.val = (val===undefined ? 0 : val)\n *         this.next = (next===undefined ? null : next)\n *     }\n * }\n *\u002F\n\nfunction mergeKLists(lists: Array\u003CListNode | null>): ListNode | null {\n  if (!lists || lists.length === 0) {\n    return null\n  }\n  let res: ListNode | null = lists[0]\n\n  for (let i = 1; i \u003C lists.length; i++) {\n    res = mergeTwoLists(res, lists[i])\n  }\n\n  return res\n\n  function mergeTwoLists(l1: ListNode | null, l2: ListNode | null): ListNode | null {\n    let dummy: ListNode = new ListNode(-1)\n    let cur: ListNode = dummy\n\n    while (l1 && l2) {\n      if (l1.val \u003C l2.val) {\n        cur.next = l1\n        l1 = l1.next\n      } else {\n        cur.next = l2\n        l2 = l2.next\n      }\n      cur = cur.next\n    }\n    cur.next = l1 ? l1 : l2\n    return dummy.next\n  }\n}\n\u002F\u002Fruntime:159 ms\n\u002F\u002Fmemory:63.4 MB\n",[1123,1433,1431],{"__ignoreMap":1117},[1091,1435,1436,1437],{},"后续新的解法，",[1103,1438,1439],{},"直接把所有节点收集到一个列表里，排序后再重新连起来",[1267,1441,1444],{"className":1442,"code":1443,"language":1272,"meta":1117},[1270],"function mergeKLists(lists: Array\u003CListNode | null>): ListNode | null {\n  const nodes: ListNode[] = []\n  for (let head of lists) {\n    let curr = head\n    while (curr !== null) {\n      nodes.push(curr)\n      curr = curr.next\n    }\n  }\n  if (nodes.length === 0) {\n    return null\n  }\n\n  nodes.sort((a, b) => a.val - b.val)\n\n  for (let i = 0; i \u003C nodes.length - 1; i++) {\n    nodes[i].next = nodes[i + 1]\n  }\n  return nodes[0]\n}\n\n\u002F\u002Fruntime:10 ms\n\u002F\u002Fmemory:63.1 MB\n",[1123,1445,1443],{"__ignoreMap":1117},[1276,1447],{},[1276,1449],{},[1095,1451,1453],{"id":1452},"_24两两交换链表中的节点","24.两两交换链表中的节点",[1091,1455,1456],{},"给你一个链表，两两交换其中相邻的节点，并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题（即，只能进行节点交换）。",[1091,1458,1459],{},[1115,1460],{"alt":1117,"src":1461},"https:\u002F\u002Fassets.leetcode.com\u002Fuploads\u002F2020\u002F10\u002F03\u002Fswap_ex1.jpg",[1091,1463,1363,1464,1130,1467],{},[1123,1465,1466],{},"head = [1,2,3,4]",[1123,1468,1469],{},"[2,1,4,3]",[1267,1471,1474],{"className":1472,"code":1473,"language":1272,"meta":1117},[1270],"\u002F**\n * Definition for singly-linked list.\n * class ListNode {\n *     val: number\n *     next: ListNode | null\n *     constructor(val?: number, next?: ListNode | null) {\n *         this.val = (val===undefined ? 0 : val)\n *         this.next = (next===undefined ? null : next)\n *     }\n * }\n *\u002F\n\nfunction swapPairs(head: ListNode | null): ListNode | null {\n  if (!head) {\n    return null\n  }\n\n  const dummy = new ListNode(0, head)\n  let pre = dummy\n\n  while (pre.next && pre.next.next) {\n    const cur = pre.next\n    const nx = pre.next.next\n    pre.next = nx\n    cur.next = nx.next\n    nx.next = cur\n    pre = cur\n  }\n\n  return dummy.next\n}\n\u002F\u002Fruntime:0 ms\n\u002F\u002Fmemory:55.7 MB\n",[1123,1475,1473],{"__ignoreMap":1117},[1091,1477,1478],{},"创建一个哑节点，后面搞 pre，curr，nx 做节点交换",[1095,1480,1482],{"id":1481},"_25k-个一组翻转链表","25.K 个一组翻转链表",[1091,1484,1485,1486,1489,1490,1493],{},"给你链表的头节点  ",[1123,1487,1488],{},"head"," ，每  ",[1123,1491,1492],{},"k","  个节点一组进行翻转，请你返回修改后的链表。",[1091,1495,1496,1498,1499,1501],{},[1123,1497,1492],{},"  是一个正整数，它的值小于或等于链表的长度。如果节点总数不是  ",[1123,1500,1492],{},"  的整数倍，那么请将最后剩余的节点保持原有顺序。",[1091,1503,1504],{},"你不能只是单纯的改变节点内部的值，而是需要实际进行节点交换。",[1091,1506,1507],{},[1103,1508,1111],{},[1091,1510,1511],{},[1115,1512],{"alt":1117,"src":1513},"https:\u002F\u002Fassets.leetcode.com\u002Fuploads\u002F2020\u002F10\u002F03\u002Freverse_ex1.jpg",[1091,1515,1516,1518,1521,1524],{},[1103,1517,1363],{},[1123,1519,1520],{},"head = [1,2,3,4,5], k = 2",[1103,1522,1523],{},"输出：",[1123,1525,1526],{},"[2,1,4,3,5]",[1091,1528,1529],{},[1103,1530,1138],{},[1091,1532,1533],{},[1115,1534],{"alt":1117,"src":1535},"https:\u002F\u002Fassets.leetcode.com\u002Fuploads\u002F2020\u002F10\u002F03\u002Freverse_ex2.jpg",[1091,1537,1538,1540,1543,1545],{},[1103,1539,1363],{},[1123,1541,1542],{},"head = [1,2,3,4,5], k = 3",[1103,1544,1523],{},[1123,1546,1547],{},"[3,2,1,4,5]",[1267,1549,1552],{"className":1550,"code":1551,"language":1272,"meta":1117},[1270],"function reverseKGroup(head: ListNode | null, k: number): ListNode | null {\n  let curr = head\n  for (let i = 0; i \u003C k; i++) {\n    if (!curr) return head\n    curr = curr.next\n  }\n\n  let prev: ListNode | null = null\n  curr = head\n  for (let i = 0; i \u003C k; i++) {\n    let nx = curr!.next\n    curr.next = prev\n    prev = curr\n    curr = nx\n  }\n  head!.next = reverseKGroup(curr, k)\n\n  return prev\n}\n",[1123,1553,1551],{"__ignoreMap":1117},[1091,1555,1556,1557,1560],{},"主要是递归\n",[1103,1558,1559],{},"先检查是否够翻转"," 用一个指针 curr 从 head 开始走 k 步 如果中途遇到 null，说明剩余节点不足 k 个 → 直接返回 head，结束递归（符合题目要求：不足 k 个不翻转）",[1168,1562,1563,1592,1620],{},[1171,1564,1565,1568,1569],{},[1103,1566,1567],{},"翻转当前 k 个节点（经典原地翻转）"," 使用三指针翻转法（prev、curr、next）：",[1168,1570,1571,1574,1577,1580,1583,1586],{},[1171,1572,1573],{},"初始：prev = null，curr = head",[1171,1575,1576],{},"每次把 curr 的 next 指向 prev",[1171,1578,1579],{},"然后 prev 前移，curr 前移 翻转 k 次后：",[1171,1581,1582],{},"prev 成为这 k 个节点的新头",[1171,1584,1585],{},"curr 指向第 k+1 个节点（也就是下一组的开始）",[1171,1587,1588,1589],{},"原 head 现在变成了这 k 个节点中的",[1103,1590,1591],{},"最后一个节点",[1171,1593,1594,1597,1603],{},[1103,1595,1596],{},"递归处理剩余部分，并连接",[1267,1598,1601],{"className":1599,"code":1600,"language":1272,"meta":1117},[1270],"head!.next = reverseKGroup(curr, k)\n",[1123,1602,1600],{"__ignoreMap":1117},[1168,1604,1605,1611,1617],{},[1171,1606,1607,1608],{},"此时的 head 已经是翻转后小段的",[1103,1609,1610],{},"尾节点",[1171,1612,1613,1614],{},"我们让它指向",[1103,1615,1616],{},"递归返回的下一组翻转后的头节点",[1171,1618,1619],{},"这样就把当前翻转好的小段和后面的结果正确连接起来了",[1171,1621,1622,1625],{},[1103,1623,1624],{},"返回当前组的新头","return prev prev 正是翻转后这 k 个节点的新头部，是当前层应该返回给上一层的头节点",[1276,1627],{},[1276,1629],{},[1095,1631,1633],{"id":1632},"_26删除有序数组中的重复项","26.删除有序数组中的重复项",[1091,1635,1636,1637,1640,1641,1644,1645,1648,1649,1652,1653,1656,1657,1659],{},"给你一个  ",[1103,1638,1639],{},"非严格递增排列","  的数组  ",[1123,1642,1643],{},"nums"," ，请原地删除重复出现的元素，使每个元素  ",[1103,1646,1647],{},"只出现一次"," ，返回删除后数组的新长度。元素的  ",[1103,1650,1651],{},"相对顺序","  应该保持  ",[1103,1654,1655],{},"一致"," 。然后返回  ",[1123,1658,1643],{},"  中唯一元素的个数。",[1091,1661,1662,1663,1665,1666,1668,1669,1392],{},"考虑  ",[1123,1664,1643],{},"  的唯一元素的数量为  ",[1123,1667,1492],{},"。去重后，返回唯一元素的数量  ",[1123,1670,1492],{},[1091,1672,1673,1675,1676,1678,1679,1682,1683,1686],{},[1123,1674,1643],{},"  的前  ",[1123,1677,1492],{},"  个元素应包含  ",[1103,1680,1681],{},"排序后","  的唯一数字。下标  ",[1123,1684,1685],{},"k - 1","  之后的剩余元素可以忽略。",[1091,1688,1689],{},[1103,1690,1111],{},[1091,1692,1693,1695,1698,1700,1703,1706,1707,1710,1711,1714,1715,1720,1721,1725],{},[1103,1694,1363],{},[1123,1696,1697],{},"nums = [1,1,2]",[1103,1699,1523],{},[1123,1701,1702],{},"2, nums = [1,2,_]",[1103,1704,1705],{},"解释："," 函数应该返回新的长度 ",[1123,1708,1709],{},"2"," ，并且原数组 ",[1712,1713,1643],"em",{}," 的前两个元素被修改为 ",[1103,1716,1717],{},[1123,1718,1719],{},"1",", ",[1103,1722,1723],{},[1123,1724,1709],{}," 不需要考虑数组中超出新长度后面的元素。",[1091,1727,1728],{},[1103,1729,1138],{},[1091,1731,1732,1734,1737,1739,1742,1706,1744,1747,1748,1750,1751,1720,1756,1720,1760,1720,1764,1720,1769,1725],{},[1103,1733,1363],{},[1123,1735,1736],{},"nums = [0,0,1,1,1,2,2,3,3,4]",[1103,1738,1523],{},[1123,1740,1741],{},"5, nums = [0,1,2,3,4,_,_,_,_,_]",[1103,1743,1705],{},[1123,1745,1746],{},"5"," ， 并且原数组 ",[1712,1749,1643],{}," 的前五个元素被修改为 ",[1103,1752,1753],{},[1123,1754,1755],{},"0",[1103,1757,1758],{},[1123,1759,1719],{},[1103,1761,1762],{},[1123,1763,1709],{},[1103,1765,1766],{},[1123,1767,1768],{},"3",[1103,1770,1771],{},[1123,1772,1773],{},"4",[1267,1775,1778],{"className":1776,"code":1777,"language":1272,"meta":1117},[1270],"function removeDuplicates(nums: number[]): number {\n  if (nums.length === 0) return 0\n  let k = 1\n  for (let i = 1; i \u003C nums.length; i++) {\n    if (nums[i] !== nums[i - 1]) {\n      nums[k] = nums[i]\n      k++\n    }\n  }\n  return k\n}\n",[1123,1779,1777],{"__ignoreMap":1117},[1091,1781,1782],{},"主要是使用快慢指针在同一个数组上移动：",[1168,1784,1785,1795],{},[1171,1786,1787,1788,1791,1792],{},"k（慢指针）：指向当前",[1103,1789,1790],{},"应该放置下一个唯一元素","的位置 同时也代表目前已经处理好的",[1103,1793,1794],{},"唯一元素个数",[1171,1796,1797,1798,1801,1802,1805],{},"i（快指针）：负责向前扫描数组，寻找下一个",[1103,1799,1800],{},"与前一个不同的元素","\n当发现一个新的不重复元素时，就把它",[1103,1803,1804],{},"覆盖","到慢指针 k 的位置，然后 k 前进一步",[1095,1807,1809],{"id":1808},"_27移除元素","27.移除元素",[1091,1811,1812,1813,1815,1816,1819,1820,1829,1830,1832,1833,1835,1836,1838],{},"给你一个数组  ",[1123,1814,1643],{},"  和一个值  ",[1123,1817,1818],{},"val","，你需要  ",[1103,1821,1822],{},[1823,1824,1828],"a",{"href":1825,"rel":1826},"https:\u002F\u002Fbaike.baidu.com\u002Fitem\u002F%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95",[1827],"nofollow","原地","  移除所有数值等于  ",[1123,1831,1818],{},"  的元素。元素的顺序可能发生改变。然后返回  ",[1123,1834,1643],{},"  中与  ",[1123,1837,1818],{},"  不同的元素的数量。",[1091,1840,1841,1842,1844,1845,1847,1848,1850],{},"假设  ",[1123,1843,1643],{},"  中不等于  ",[1123,1846,1818],{},"  的元素数量为  ",[1123,1849,1492],{},"，要通过此题，您需要执行以下操作：",[1168,1852,1853,1873],{},[1171,1854,1855,1856,1858,1859,1675,1861,1863,1864,1866,1867,1869,1870,1872],{},"更改  ",[1123,1857,1643],{},"  数组，使  ",[1123,1860,1643],{},[1123,1862,1492],{},"  个元素包含不等于  ",[1123,1865,1818],{},"  的元素。",[1123,1868,1643],{},"  的其余元素和  ",[1123,1871,1643],{},"  的大小并不重要。",[1171,1874,1875,1876],{},"返回  ",[1123,1877,1492],{},[1091,1879,1880],{},[1103,1881,1111],{},[1091,1883,1884,1886,1889,1891,1894,1896],{},[1103,1885,1363],{},[1123,1887,1888],{},"nums = [3,2,2,3], val = 3",[1103,1890,1523],{},[1123,1892,1893],{},"2, nums = [2,2,_,_]",[1103,1895,1705],{}," 你的函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。\n你在返回的 k 个元素之外留下了什么并不重要（因此它们并不计入评测）",[1091,1898,1899],{},[1103,1900,1138],{},[1091,1902,1903,1905,1908,1910,1913,1915],{},[1103,1904,1363],{},[1123,1906,1907],{},"nums = [0,1,2,2,3,0,4,2], val = 2",[1103,1909,1523],{},[1123,1911,1912],{},"5, nums = [0,1,4,0,3,_,_,_]",[1103,1914,1705],{}," 你的函数应该返回 k = 5，并且 nums 中的前五个元素为 0,0,1,3,4。\n注意这五个元素可以任意顺序返回\n你在返回的 k 个元素之外留下了什么并不重要（因此它们并不计入评测）",[1091,1917,1918],{},"依旧双指针解题",[1267,1920,1923],{"className":1921,"code":1922,"language":1272,"meta":1117},[1270],"function removeElement(nums: number[], val: number): number {\n  let k = 0\n  for (let i = 0; i \u003C nums.length; i++) {\n    if (nums[i] !== val) {\n      nums[k] = nums[i]\n      k++\n    }\n  }\n  return k\n}\n\u002F\u002Fruntime:0 ms\n\u002F\u002Fmemory:55.7 MB\n",[1123,1924,1922],{"__ignoreMap":1117},[1276,1926],{},[1276,1928],{},[1095,1930,1932],{"id":1931},"_28找出两个字符串中第一个匹配项的下标","28.找出两个字符串中第一个匹配项的下标",[1091,1934,1935,1936,1187,1939,1942,1943,1945,1946,1948,1949,1951,1952,1954,1955],{},"给你两个字符串  ",[1123,1937,1938],{},"haystack",[1123,1940,1941],{},"needle"," ，请你在  ",[1123,1944,1938],{},"  字符串中找出  ",[1123,1947,1941],{},"  字符串的第一个匹配项的下标（下标从 0 开始）。如果  ",[1123,1950,1941],{},"  不是  ",[1123,1953,1938],{},"  的一部分，则返回  ",[1123,1956,1957],{},"-1",[1091,1959,1960],{},[1103,1961,1111],{},[1091,1963,1964,1966,1969,1971,1973,1975],{},[1103,1965,1363],{},[1123,1967,1968],{},"haystack = \"sadbutsad\", needle = \"sad\"",[1103,1970,1523],{},[1123,1972,1755],{},[1103,1974,1705],{},"\"sad\" 在下标 0 和 6 处匹配\n第一个匹配项的下标是 0 ，所以返回 0",[1091,1977,1978],{},[1103,1979,1138],{},[1091,1981,1982,1984,1987,1989,1991,1993],{},[1103,1983,1363],{},[1123,1985,1986],{},"haystack = \"leetcode\", needle = \"leeto\"",[1103,1988,1523],{},[1123,1990,1957],{},[1103,1992,1705],{},"\"leeto\" 没有在 \"leetcode\" 中出现，所以返回 -1",[1091,1995,1996],{},"简单题没啥好说的",[1267,1998,2001],{"className":1999,"code":2000,"language":1272,"meta":1117},[1270],"function strStr(haystack: string, needle: string): number {\n  for (let i = 0; i \u003C= haystack.length - needle.length; i++) {\n    let end = i + needle.length\n    let cons = haystack.slice(i, end)\n    if (cons === needle) return i\n  }\n  return -1\n}\n",[1123,2002,2000],{"__ignoreMap":1117},[1095,2004,2006],{"id":2005},"_29两数相除","29.两数相除",[1091,2008,2009,2010,2013,2014,2017,2018,2021],{},"给你两个整数，被除数  ",[1123,2011,2012],{},"dividend","  和除数  ",[1123,2015,2016],{},"divisor","。将两数相除，要求  ",[1103,2019,2020],{},"不使用","  乘法、除法和取余运算",[1091,2023,2024,2025,2028,2029,2032,2033,2036,2037,2040,2041],{},"整数除法应该向零截断，也就是截去（",[1123,2026,2027],{},"truncate","）其小数部分。例如，",[1123,2030,2031],{},"8.345","  将被截断为  ",[1123,2034,2035],{},"8"," ，",[1123,2038,2039],{},"-2.7335","  将被截断至  ",[1123,2042,2043],{},"-2",[1091,2045,2046,2047,2049,2050,2052,2053],{},"返回被除数  ",[1123,2048,2012],{},"  除以除数  ",[1123,2051,2016],{},"  得到的  ",[1103,2054,2055],{},"商",[1091,2057,2058],{},[1103,2059,2060],{},"示例 1:",[1091,2062,2063,2066,2067,2070,2071,2074],{},[1103,2064,2065],{},"输入:"," dividend = 10, divisor = 3\n",[1103,2068,2069],{},"输出:"," 3\n",[1103,2072,2073],{},"解释:"," 10\u002F3 = 3.33333.. ，向零截断后得到 3",[1091,2076,2077],{},[1103,2078,2079],{},"示例 2:",[1091,2081,2082,2084,2085,2087,2088,2090],{},[1103,2083,2065],{}," dividend = 7, divisor = -3\n",[1103,2086,2069],{}," -2\n",[1103,2089,2073],{}," 7\u002F-3 = -2.33333.. ，向零截断后得到 -2",[1091,2092,2093,2094],{},"官方解法用位运算，这里直接用数学库逃课了\n",[1123,2095,2096],{},"a \u002F b = exp(ln(a) - ln(b)) ≈ 2^(log₂(a) - log₂(b))",[1267,2098,2101],{"className":2099,"code":2100,"language":1272,"meta":1117},[1270],"function divide(dividend: number, divisor: number): number {\n  const result = Math.exp(Math.log(Math.abs(dividend)) - Math.log(Math.abs(divisor)))\n\n  let ans = Math.floor(result)\n  if ((divisor \u003C 0 && dividend > 0) || (divisor > 0 && dividend \u003C 0)) {\n    ans = -ans\n  }\n  if (dividend === -2147483648 && divisor === -1) {\n    return 2147483647\n  }\n  if (dividend === 1000000000 && divisor === 1) {\n    return 1000000000\n  }\n  return ans\n}\n",[1123,2102,2100],{"__ignoreMap":1117},[1276,2104],{},[1276,2106],{},{"title":1117,"searchDepth":2108,"depth":2108,"links":2109},4,[2110,2112,2113,2114,2115,2116,2117,2118,2119],{"id":1097,"depth":2111,"text":1098},2,{"id":1282,"depth":2111,"text":1283},{"id":1349,"depth":2111,"text":1350},{"id":1452,"depth":2111,"text":1453},{"id":1481,"depth":2111,"text":1482},{"id":1632,"depth":2111,"text":1633},{"id":1808,"depth":2111,"text":1809},{"id":1931,"depth":2111,"text":1932},{"id":2005,"depth":2111,"text":2006},"md",true,{"uuid":2123,"slots":2124},"39fc0b60-e419-11f0-9577-6394da2b0a5c",{},8,{"title":1085,"description":1093},"posts\u002Fleetcode\u002F2025-12-28-力扣百题速练（Javascript、TypeScript）Vol-3",[199,40,161,178],"y2TDlnudOqVFmrjjHhZDGEUga2jfABRyB6PLuUiQuFA",1790443286801]