{"id":20499273,"url":"https://github.com/yihonglei/thinking-in-algorithms","last_synced_at":"2025-06-25T18:32:49.756Z","repository":{"id":41088989,"uuid":"436566303","full_name":"yihonglei/thinking-in-algorithms","owner":"yihonglei","description":"LeetCode Solutions","archived":false,"fork":false,"pushed_at":"2025-04-12T13:27:01.000Z","size":41510,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T14:38:22.936Z","etag":null,"topics":["algorithm","algorithms","algorithms-and-data-structures","java","leetcode","leetcode-c","leetcode-java","leetcode-solutions"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yihonglei.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-09T10:01:50.000Z","updated_at":"2025-04-12T13:27:05.000Z","dependencies_parsed_at":"2024-06-12T06:11:52.282Z","dependency_job_id":"e80254fc-2533-498c-9a37-f5636fa5074f","html_url":"https://github.com/yihonglei/thinking-in-algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yihonglei%2Fthinking-in-algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yihonglei%2Fthinking-in-algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yihonglei%2Fthinking-in-algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yihonglei%2Fthinking-in-algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yihonglei","download_url":"https://codeload.github.com/yihonglei/thinking-in-algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248765980,"owners_count":21158296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","algorithms","algorithms-and-data-structures","java","leetcode","leetcode-c","leetcode-java","leetcode-solutions"],"created_at":"2024-11-15T18:16:59.044Z","updated_at":"2025-04-13T18:51:12.542Z","avatar_url":"https://github.com/yihonglei.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 前言\n\n1、[数据结构与算法理论和 leetcode 题目分类思维导图；](https://github.com/yihonglei/thinking-in-algorithms/tree/master/xmind)\n\n2、Java 代码基于 JDK8 实现；\n\n### 数据结构目录\n\n- [数组](https://github.com/yihonglei/thinking-in-algorithms#%E6%95%B0%E7%BB%84)\n- [链表](https://github.com/yihonglei/thinking-in-algorithms#%E9%93%BE%E8%A1%A8)\n- [栈](https://github.com/yihonglei/thinking-in-algorithms#%E6%A0%88)\n- [队列](https://github.com/yihonglei/thinking-in-algorithms#%E9%98%9F%E5%88%97)\n- [字符串](https://github.com/yihonglei/thinking-in-algorithms#%E5%AD%97%E7%AC%A6%E4%B8%B2)\n- [哈希表](https://github.com/yihonglei/thinking-in-algorithms#%E5%93%88%E5%B8%8C%E8%A1%A8)\n- [图](https://github.com/yihonglei/thinking-in-algorithms#%E5%9B%BE)\n- [跳表](https://github.com/yihonglei/thinking-in-algorithms#%E8%B7%B3%E8%A1%A8)\n- [树](https://github.com/yihonglei/thinking-in-algorithms#%E6%A0%91)\n- [堆](https://github.com/yihonglei/thinking-in-algorithms#%E5%A0%86)\n- [并查集](https://github.com/yihonglei/thinking-in-algorithms#%E5%B9%B6%E6%9F%A5%E9%9B%86)\n- [线段树](https://github.com/yihonglei/thinking-in-algorithms#%E7%BA%BF%E6%AE%B5%E6%A0%91)\n- [树状数组](https://github.com/yihonglei/thinking-in-algorithms#%E6%A0%91%E7%8A%B6%E6%95%B0%E7%BB%84)\n- [字典树](https://github.com/yihonglei/thinking-in-algorithms#%E5%AD%97%E5%85%B8%E6%A0%91)\n\n### 算法目录\n\n- [排序](https://github.com/yihonglei/thinking-in-algorithms#%E6%8E%92%E5%BA%8F)\n- [递归](https://github.com/yihonglei/thinking-in-algorithms#%E9%80%92%E5%BD%92)\n- [尾递归](https://github.com/yihonglei/thinking-in-algorithms#%E5%B0%BE%E9%80%92%E5%BD%92)\n- [二分查找](https://github.com/yihonglei/thinking-in-algorithms#%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE)\n- [哈希算法](https://github.com/yihonglei/thinking-in-algorithms#%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95)\n- [字符串匹配](https://github.com/yihonglei/thinking-in-algorithms#%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%8C%B9%E9%85%8D)\n- [深度优先搜索](https://github.com/yihonglei/thinking-in-algorithms#%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2)\n- [广度优先搜索](https://github.com/yihonglei/thinking-in-algorithms#%E5%B9%BF%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2)\n- [贪心算法](https://github.com/yihonglei/thinking-in-algorithms#%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95)\n- [分治算法](https://github.com/yihonglei/thinking-in-algorithms#%E5%88%86%E6%B2%BB%E7%AE%97%E6%B3%95)\n- [回溯算法](https://github.com/yihonglei/thinking-in-algorithms#%E5%9B%9E%E6%BA%AF%E7%AE%97%E6%B3%95)\n- [动态规划](https://github.com/yihonglei/thinking-in-algorithms#%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92)\n- [设计](https://github.com/yihonglei/thinking-in-algorithms#%E8%AE%BE%E8%AE%A1)\n- [数论](https://github.com/yihonglei/thinking-in-algorithms#%E6%95%B0%E8%AE%BA)\n- [数学](https://github.com/yihonglei/thinking-in-algorithms#%E6%95%B0%E5%AD%A6)\n- [概率与统计](https://github.com/yihonglei/thinking-in-algorithms#%E6%A6%82%E7%8E%87%E4%B8%8E%E7%BB%9F%E8%AE%A1)\n\n### 算法技巧目录\n\n- [双指针](https://github.com/yihonglei/thinking-in-algorithms#%E5%8F%8C%E6%8C%87%E9%92%88)\n- [模拟](https://github.com/yihonglei/thinking-in-algorithms#%E6%A8%A1%E6%8B%9F)\n- [滑动窗口](https://github.com/yihonglei/thinking-in-algorithms#%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3)\n- [位运算](https://github.com/yihonglei/thinking-in-algorithms#%E4%BD%8D%E8%BF%90%E7%AE%97)\n- [前缀和](https://github.com/yihonglei/thinking-in-algorithms#%E5%89%8D%E7%BC%80%E5%92%8C)\n- [计数](https://github.com/yihonglei/thinking-in-algorithms#%E8%AE%A1%E6%95%B0)\n- [状态压缩](https://github.com/yihonglei/thinking-in-algorithms#%E7%8A%B6%E6%80%81%E5%8E%8B%E7%BC%A9)\n- [哈希函数](https://github.com/yihonglei/thinking-in-algorithms#%E5%93%88%E5%B8%8C%E5%87%BD%E6%95%B0)\n- [滚动哈希](https://github.com/yihonglei/thinking-in-algorithms#%E6%BB%9A%E5%8A%A8%E5%93%88%E5%B8%8C)\n- [扫描线](https://github.com/yihonglei/thinking-in-algorithms#%E6%89%AB%E6%8F%8F%E7%BA%BF)\n- [单调栈](https://github.com/yihonglei/thinking-in-algorithms#%E5%8D%95%E8%B0%83%E6%A0%88)\n- [哨兵结点](https://github.com/yihonglei/thinking-in-algorithms#%E5%93%A8%E5%85%B5%E8%8A%82%E7%82%B9)\n\n### 算法模板目录\n\n- [算法模板](https://github.com/yihonglei/thinking-in-algorithms#%E5%9B%9B%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF)\n\n# 一、数据结构\n\n## 数组\n\n1、数组理论\n\n2、经典题目(leetcode)\n\n- [1.两数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0001)\n- [8.字符串转换整数 (atoi](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0008)\n- [11.盛最多水的容器](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0011)\n- [15.三数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0015)\n- [16.最接近的三数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0016)\n- [18.四数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0018)\n- [26.删除有序数组中的重复项](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0026)\n- [27.移除元素](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0027)\n- [34.在排序数组中查找元素的第一个和最后一个位置](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0034)\n- [42.接雨水](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0042)\n- [59. 螺旋矩阵 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0059)\n- [78.子集](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0078)\n- [79.单词搜索](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0079)\n- [209.长度最小的子数组](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0209)\n- [977.有序数组的平方](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0977)\n\n## 链表\n\n1、链表理论\n\n2、经典题目(leetcode)\n\n- [2.两数相加](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0002)\n- [19.删除链表的倒数第 N 个结点](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0019)\n- [21.合并两个有序链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0021)\n- [23.合并K个升序链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0023)\n- [24.两两交换链表中的结点](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0024)\n- [83.删除排序链表中的重复元素](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0083)\n- [141.环形链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0141)\n- [142.环形链表 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0142)\n- [148.排序链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0148)\n- [203.移除链表元素](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0203)\n- [206.反转链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0206)\n- [234.回文链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0234)\n- [707.设计链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0707)\n- [876.链表的中间结点](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0876)\n\n## 栈\n\n1、栈理论\n\n2、经典题目(leetcode)\n\n- [20.有效的括号](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0020)\n- [150.逆波兰表达式求值](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0150)\n- [225.用队列实现栈](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0225)\n- [232.用栈实现队列](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0232)\n- [1047.删除字符串中的所有相邻重复项](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode2/n1047)\n\n## 队列\n\n1、队列理论\n\n2、经典题目(leetcode)\n\n- [225.用队列实现栈](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0225)\n- [232.用栈实现队列](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0232)\n- [239.滑动窗口最大值](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0239)\n- [347.前 K 个高频元素](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0347)\n\n## 字符串\n\n1、字符串理论\n\n2、经典题目(leetcode)\n\n- [3.无重复字符的最长子串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0003)\n- [14.最长公共前缀](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0014)\n- [28.实现 strStr()](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0028)\n- [30.串联所有单词的子串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0030)\n- [76.最小覆盖子串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0076)\n- [151.翻转字符串里的单词](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0151)\n- [126.单词接龙 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0126)\n- [344.反转字符串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0344)\n- [389.找不同](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0389)\n- [459.重复的子字符串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0459)\n- [468.验证IP地址](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0468)\n- [541.反转字符串 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0541)\n\n## 哈希表\n\n1、哈希表理论\n\n2、经典题目(leetcode)\n\n- [1.两数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0001)\n- [9.回文数](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0009)\n- [15.三数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0015)\n- [18.四数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0018)\n- [202.快乐数](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0202)\n- [242.有效的字母异位词](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0242)\n- [349.两个数组的交集](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0349)\n- [383.赎金信](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0383)\n- [454. 四数相加 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0454)\n\n## 图\n\n1、图理论\n\n2、经典题目(leetcode)\n\n## 跳表\n\n1、跳表理论\n\n2、经典题目(leetcode)\n\n## 树\n\n1、树理论\n\n2、经典题目(leetcode)\n\n- [94.二叉树的中序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0094)\n- [101.对称二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0101)\n- [102.二叉树的层序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0102)\n- [104.二叉树的最大深度](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0104)\n- [106.从中序与后序遍历序列构造二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0106)\n- [111.二叉树的最小深度](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0111)\n- [112.路径总和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0112)\n- [144.二叉树的前序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0144)\n- [145.二叉树的后序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0145)\n- [257.二叉树的所有路径](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0257)\n- [404.左叶子之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0404)\n- [450.删除二叉搜索树中的结点](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0450)\n- [513.找树左下角的值](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0513)\n- [530.二叉搜索树的最小绝对差](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0530)\n- [617.合并二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0617)\n- [654.最大二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0654)\n\n## 堆\n\n1、堆理论\n\n2、经典题目(leetcode)\n\n## 并查集\n\n1、并查集理论\n\n2、经典题目(leetcode)\n\n## 线段树\n\n1、线段树理论\n\n2、经典题目(leetcode)\n\n## 树状数组\n\n1、树状数组理论\n\n2、经典题目(leetcode)\n\n## 字典树\n\n1、字典树理论\n\n2、经典题目(leetcode)\n\n# 二、算法\n\n## 排序\n\n1、排序理论\n\n2、经典题目(leetcode)\n\n## 递归\n\n1、递归理论\n\n2、经典题目(leetcode)\n\n- [7.整数反转](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0007)\n- [9.回文数](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0009)\n\n## 尾递归\n\n1、尾递归理论\n\n2、经典题目(leetcode)\n\n## 二分查找\n\n1、二分查找理论\n\n2、经典题目(leetcode)\n\n- [34.在排序数组中查找元素的第一个和最后一个位置](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0034)\n- [69.x 的平方根](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0069)\n- [162.寻找峰值](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0162)\n- [165.比较版本号](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0165)\n- [209.长度最小的子数组](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0209)\n- [287.寻找重复数](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0287)\n- [349.两个数组的交集](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0349)\n- [704.二分查找](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0704)\n- [852.山脉数组的峰顶索引](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode2/n852)\n- [1351.统计有序矩阵中的负数](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode2/n1351)\n\n## 哈希算法\n\n1、哈希算法理论\n\n2、经典题目(leetcode)\n\n## 字符串匹配\n\n1、字符串匹配理论\n\n2、经典题目(leetcode)\n\n- [28.实现 strStr()](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0028)\n\n## 深度优先搜索\n\n1、深度优先搜索理论\n\n2、经典题目(leetcode)\n\n- [94.二叉树的中序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0094)\n- [101.对称二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0101)\n- [102.二叉树的层序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0102)\n- [104.二叉树的最大深度](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0104)\n- [106.从中序与后序遍历序列构造二叉树](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0106)\n- [111.二叉树的最小深度](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0111)\n- [112.路径总和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0112)\n- [144.二叉树的前序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0144)\n- [145.二叉树的后序遍历](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0145)\n- [257.二叉树的所有路径](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0257)\n\n## 广度优先搜索\n\n1、广度优先搜索理论\n\n2、经典题目(leetcode)\n\n## 贪心算法\n\n1、贪心理论\n\n2、经典题目(leetcode)\n\n## 分治算法\n\n1、分治算法理论\n\n2、经典题目(leetcode)\n\n## 回溯算法\n\n1、回溯算法理论\n\n2、经典题目(leetcode)\n\n## 动态规划\n\n1、动态规划理论\n\n2、经典题目(leetcode)\n\n## 设计\n\n1、设计理论\n\n2、经典题目(leetcode)\n\n## 数论\n\n1、数论理论\n\n2、经典题目(leetcode)\n\n## 数学\n\n1、数学理论\n\n2、经典题目(leetcode)\n\n## 概率与统计\n\n1、概率与统计理论\n\n2、经典题目(leetcode)\n\n# 三、算法技巧\n\n## 双指针\n\n1、双指针理论\n\n2、经典题目(leetcode)\n\n- [11.盛最多水的容器](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0011)\n- [15.三数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0015)\n- [16.最接近的三数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0016)\n- [18.四数之和](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0018)\n- [19.删除链表的倒数第 N 个结点](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0019)\n- [26.删除有序数组中的重复项](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0026)\n- [27.移除元素](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0027)\n- [141.环形链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0141)\n- [142.环形链表 II](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0142)\n- [151.翻转字符串里的单词](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0151)\n- [206.反转链表](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0206)\n- [209.长度最小的子数组](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0209)\n- [344.反转字符串](https://github.com/yihonglei/thinking-in-algorithms/tree/master/java/src/main/java/com/jpeony/leetcode/n0344)\n\n## 模拟\n\n1、模拟理论\n\n2、经典题目(leetcode)\n\n## 滑动窗口\n\n1、滑动窗口理论\n\n2、经典题目(leetcode)\n\n## 位运算\n\n1、位运算理论\n\n2、经典题目(leetcode)\n\n## 前缀和\n\n1、前缀和理论\n\n2、经典题目(leetcode)\n\n## 计数\n\n1、计数理论\n\n2、经典题目(leetcode)\n\n## 状态压缩\n\n1、状态压缩理论\n\n2、经典题目(leetcode)\n\n## 哈希函数\n\n1、哈希函数理论\n\n2、经典题目(leetcode)\n\n## 滚动哈希\n\n1、滚动哈希理论\n\n2、经典题目(leetcode)\n\n## 扫描线\n\n1、扫描线理论\n\n2、经典题目(leetcode)\n\n## 单调栈\n\n1、单调栈理论\n\n2、经典题目(leetcode)\n\n## 哨兵结点\n\n1、单调栈理论\n\n2、经典题目(leetcode)\n\n# 四、算法模板\n\n经典题目(leetcode)\n\n- [回溯算法模板](https://github.com/yihonglei/thinking-in-algorithms/blob/master/java/src/main/java/com/jpeony/leetcodecn/ReplaceSpace.java)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyihonglei%2Fthinking-in-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyihonglei%2Fthinking-in-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyihonglei%2Fthinking-in-algorithms/lists"}