数据结构和算法的 Golang 实现 数组 支持动态扩容缩容的数组 大小固定的有序数组 88. 合并两个有序数组 15. 三数之和 169. 求众数(散列表法与排序法) 41. 缺失的第一个正数 485. 最大连续1的个数 无序数组排序后的最大相邻差 238. 除自身以外数组的乘积 链表 单链表 循环链表 双向链表 206. 反转链表 876. 链表的中间节点 合并两个有序链表 141. 链表中是否有环 142. 环形链表 II 23. 合并 K 个排序链表 链表的倒数第 K 个节点 链表中环的长度 19. 删除链表的倒数第N个节点 栈 顺序栈 链式栈 20. 有效的括号 最小栈 队列 顺序队列 链式队列 循环队列 递归 509. 斐波那契数 求阶乘 求全排列 50. Pow(x, n) 22. 括号生成 最大公约数 排序 冒泡排序 插入排序 选择排序 归并排序 快速排序 O(n) 时间复杂度内找到一组数据的第 K 大元素 二分查找 简单二分查找 查找第一个值等于给定值的元素 查找最后一个值等于给定值的元素 查找第一个大于等于给定值的元素 查找最后一个小于等于给定值的元素 69. 求 x 的平方根 153. 寻找旋转排序数组中的最小值 154. 寻找旋转排序数组中的最小值 II 散列表 基于链表法解决冲突的散列表 有效的字母异位词 字符串 字符串反转 二叉树 二叉搜索树 144. 前序遍历 94. 中序遍历 145. 后序遍历 102. 层序遍历 104. 二叉树的最大深度 111. 二叉树的最小深度 114. 二叉树展开为链表 98. 验证二叉搜索树 226. 翻转二叉树 235. 二叉搜索树的最近公共祖先 236. 二叉树的最近公共祖先 124. 二叉树中的最大路径和 堆 小顶堆 大顶堆 优先级队列 堆排序 贪心算法 122. 买卖股票的最佳时机 II 回溯算法 51. N皇后 52. N皇后 II 36. 有效的数独 37. 解数独 79. 单词搜索 329. 矩阵中的最长递增路径 Trie 208. 实现 Trie (前缀树) 212. 单词搜索 II 位运算 191. 位1的个数 231. 2的幂 338. 比特位计数 52. N皇后 II(位运算) 动态规划 70. 爬楼梯 120. 三角形最小路径和 152. 乘积最大子序列 121. 买卖股票的最佳时机 122. 买卖股票的最佳时机 II 123. 买卖股票的最佳时机 III 188. 买卖股票的最佳时机 IV 309. 最佳买卖股票时机含冷冻期 714. 买卖股票的最佳时机含手续费 300. 最长上升子序列 322. 零钱兑换 72. 编辑距离 343. 整数拆分 并查集 200. 岛屿数量 547. 朋友圈 LRU 146. LRU缓存机制