README ¶ ALGO 在线DOCS 主要使用golang语言讲解和实现算法,包括数据结构、leetcode算法题等。 Leetcode部分主要参考了代码随想录, 然后自己做了相关的笔记和实现,便于分享和后期温习。 相关题目题目 数组 题目 原题 难度 问题和讲解 源码 关键词 已完成 704. 二分查找 leecode原题链接 简单 问题和讲解 源码 二分法 ☑ 27. 移除元素 leecode原题链接 简单 问题和讲解 源码 双指针法 ☑ 977. 有序数组的平方 leecode原题链接 简单 问题和讲解 源码 双指针法 ☑ 209. 长度最小的子数组 leecode原题链接 中等 问题和讲解 源码 滑动窗口 ☑ 59. 螺旋矩阵 II leecode原题链接 中等 问题和讲解 源码 考验代码掌控能力和边界掌控 ☑ 链表 题目 原题 难度 问题和讲解 源码 关键词 已完成 203. 移除链表元素 leecode原题链接 简单 问题和讲解 源码 虚拟头节点 ☑ 707. 设计链表 leecode原题链接 中等 问题和讲解 源码 链表基本操作 ☑ 206. 反转链表 leecode原题链接 简单 问题和讲解 源码 ☑ 24. 两两交换链表中的节点 leecode原题链接 中等 问题和讲解 源码 ☑ 19. 删除链表的倒数第 N 个结点 leecode原题链接 中等 问题和讲解 源码 双指针法 ☑ 面试题 02.07. 链表相交 leecode原题链接 简单 问题和讲解 源码 ☑ 142. 环形链表 II leecode原题链接 中等 问题和讲解 源码 ☑ 哈希表 题目 原题 难度 问题和讲解 源码 关键词 已完成 242. 有效的字母异位词 leecode原题链接 简单 问题和讲解 源码 ☑ 349. 两个数组的交集 leecode原题链接 简单 问题和讲解 源码 ☑ 202. 快乐数 leecode原题链接 简单 问题和讲解 源码 ☑ 1. 两数之和 leecode原题链接 简单 问题和讲解 源码 ☑ 454. 四数相加 II leecode原题链接 中等 问题和讲解 源码 ☑ 383. 赎金信 leecode原题链接 简单 问题和讲解 源码 ☑ 15. 三数之和 leecode原题链接 中等 问题和讲解 源码 ☑ 18. 四数之和 leecode原题链接 中等 问题和讲解 源码 ☑ 字符串 题目 原题 难度 问题和讲解 源码 关键词 已完成 344. 反转字符串 leecode原题链接 简单 问题和讲解 源码 ☑ 541. 反转字符串 II leecode原题链接 简单 问题和讲解 源码 ☑ 剑指 Offer 05. 替换空格 leecode原题链接 简单 问题和讲解 源码 ☑ 151. 颠倒字符串中的单词 leecode原题链接 中等 问题和讲解 源码 ☑ 58 - II. 左旋转字符串 leecode原题链接 简单 问题和讲解 源码 花式反转 ☑ 28. 实现 strStr leecode原题链接 简单 问题和讲解 源码 KMP算法 ☑ 459. 重复的子字符串 leecode原题链接 简单 问题和讲解 源码 KMP算法 ☑ 栈和队列 题目 原题 难度 问题和讲解 源码 关键词 已完成 232. 用栈实现队列 leecode原题链接 简单 问题和讲解 源码 输入、输出栈 ☑ 225. 用队列实现栈 leecode原题链接 简单 问题和讲解 源码 队列的基本使用 ☑ 20. 有效的括号 leecode原题链接 简单 问题和讲解 源码 使用栈解决的经典问题 ☑ 1047. 删除字符串中的所有相邻重复项 leecode原题链接 简单 问题和讲解 源码 匹配问题也使用栈解决 ☑ 150. 逆波兰表达式求值 leecode原题链接 中等 问题和讲解 源码 计算机运算思考方式,使用栈解决的经典问题 ☑ 239. 滑动窗口最大值 leecode原题链接 困难 问题和讲解 源码 单调队列的经典题目 ☑ 347. 前 K 个高频元素 leecode原题链接 中等 问题和讲解 源码 优先级队列 ☑ 二叉树 题目 原题 难度 问题和讲解 源码 关键词 已完成 144. 二叉树的前序遍历 leecode原题链接 简单 问题和讲解 源码 前序遍历(递归法+迭代法(借助栈)) ☑ 145. 二叉树的后序遍历 leecode原题链接 简单 问题和讲解 源码 后序遍历(递归法+迭代法(借助栈)) ☑ 94. 二叉树的中序遍历 leecode原题链接 简单 问题和讲解 源码 后序遍历(递归法+迭代法(借助栈)) ☑ 102. 二叉树的层序遍历 leecode原题链接 中等 问题和讲解 源码 层次遍历(借助队列) ☑ 226. 翻转二叉树 leecode原题链接 简单 问题和讲解 源码 可以是层次遍历的的变种实现 ☑ 101. 对称二叉树 leecode原题链接 简单 问题和讲解 源码 递归和迭代 ☑ 104. 二叉树的最大深度 leecode原题链接 简单 问题和讲解 源码 层序遍历的用法 ☑ 111. 二叉树的最小深度 leecode原题链接 简单 问题和讲解 源码 层序遍历的用法 ☑ 222. 完全二叉树的节点个数 leecode原题链接 中等 问题和讲解 源码 层次遍历 ☑ 110. 平衡二叉树 leecode原题链接 简单 问题和讲解 源码 递归 ☑ 257. 二叉树的所有路径 leecode原题链接 简单 问题和讲解 源码 递归和回溯 ☑ 404. 左叶子之和 leecode原题链接 简单 问题和讲解 源码 前序遍历变种 ☑ 513. 找树左下角的值 leecode原题链接 中等 问题和讲解 源码 层次遍历的应用 ☑ 112. 路径总和 leecode原题链接 简单 问题和讲解 源码 跟257这题思路类似 ☑ 106. 从中序与后序遍历序列构造二叉树 leecode原题链接 中等 问题和讲解 源码 典型的从遍历反向构造二叉树 ☑ 654. 最大二叉树 leecode原题链接 中等 问题和讲解 源码 递归 ☑ 617. 合并二叉树 leecode原题链接 简单 问题和讲解 源码 两棵子树同时前序遍历 ☑ 700. 二叉搜索树中的搜索 leecode原题链接 简单 问题和讲解 源码 二叉搜索树特性 ☑ 98. 验证二叉搜索树 leecode原题链接 中等 问题和讲解 源码 二叉搜索树特性 ☑ 530. 二叉搜索树的最小绝对差 leecode原题链接 简单 问题和讲解 源码 二叉搜索树特性和中序遍历的结合(形成有序数组) ☑ 501. 二叉搜索树中的众数 leecode原题链接 简单 问题和讲解 源码 二叉搜索树特性和中序遍历的结合(进阶: 一次遍历中解决) ☑ 236. 二叉树的最近公共祖先 leecode原题链接 简单 问题和讲解 源码 递归 ☑ 701. 二叉搜索树中的插入操作 leecode原题链接 中等 问题和讲解 源码 二叉树特性 ☑ 450. 删除二叉搜索树中的节点 leecode原题链接 中等 问题和讲解 源码 二叉搜索树特性利用 ☑ 669. 修剪二叉搜索树 leecode原题链接 中等 问题和讲解 源码 二叉搜索树特性利用 ☑ 108. 将有序数组转换为二叉搜索树 leecode原题链接 简单 问题和讲解 源码 结合二分法的思想使用 ☑ 538. 把二叉搜索树转换为累加树 leecode原题链接 中等 问题和讲解 源码 二叉树的反中序遍历 ☑ 回溯算法 题目 原题 难度 问题和讲解 源码 关键词 已完成 77. 组合 leecode原题链接 中等 问题和讲解 源码 组合类回溯算法 ☑ 216. 组合总和 III leecode原题链接 中等 问题和讲解 源码 组合类回溯算法 ☑ 17. 电话号码的字母组合 leecode原题链接 中等 问题和讲解 源码 组合类回溯算法 ☑ 39. 组合总和 leecode原题链接 中等 问题和讲解 源码 组合类回溯算法 ☑ 40. 组合总和 II leecode原题链接 中等 问题和讲解 源码 组合类回溯算法(去重) ☑ 131. 分割回文串 leecode原题链接 中等 问题和讲解 源码 分割问题 ☑ 93. 复原 IP 地址 leecode原题链接 中等 问题和讲解 源码 分割问题 ☑ 78. 子集 leecode原题链接 中等 问题和讲解 源码 子集问题 ☑ 90. 子集 II leecode原题链接 中等 问题和讲解 源码 子集问题 ☑ 491. 递增子序列 leecode原题链接 中等 问题和讲解 源码 像子集问题 ☑ 46. 全排列 leecode原题链接 中等 问题和讲解 源码 像子集问题 ☑ 47. 全排列 II leecode原题链接 中等 问题和讲解 源码 像子集问题(去重) ☑ 332. 重新安排行程 leecode原题链接 困难 问题和讲解 源码 ☑ 51. N 皇后 leecode原题链接 困难 问题和讲解 源码 ☑ 37. 解数独 leecode原题链接 困难 问题和讲解 源码 ☑ Expand ▾ Collapse ▴ Directories ¶ Show internal Expand all Path Synopsis array code/209-minimum-size-subarray-sum code/27-remove-element code/59-spiral-matrix-ii code/704-binary-search code/977-squares-of-a-sorted-array backtracking code/131-palindrome-partitioning code/17-letter-combinations-of-a-phone-number code/216-combination-sum-iii code/332-reconstruct-itinerary code/37-sudoku-solver code/39-combination-sum code/40-combination-sum-ii code/46-permutations code/47-permutations-ii code/491-increasing-subsequences code/51-n-queens code/77-combinations code/78-subsets code/90-subsets-ii code/93-restore-ip-addresses hash code/1-two-sum code/15-3sum code/18-4sum code/202-happy-number code/242-valid-anagram code/349-intersection-of-two-arrays code/383-ransom-note code/454-4sum-ii linked-list code/0207-intersection-of-two-linked-lists-lcci code/142-linked-list-cycle-ii code/19-remove-nth-node-from-end-of-list code/203-remove-linked-list-elements code/206-reverse-linked-list code/24-swap-nodes-in-pairs code/707-design-linked-list code/base/circlelist code/base/doublelist code/base/singlelist stacks-queues code/1047-remove-all-adjacent-duplicates-in-string code/150-evaluate-reverse-polish-notation code/20-valid-parentheses code/225-implement-stack-using-queues code/232-implement-queue-using-stacks code/239-sliding-window-maximum code/347-top-k-frequent-elements code/queue-base code/stack-base string code/05-ti-huan-kong-ge-lcof code/151-reverse-words-in-a-string code/28-implement-strstr code/344-reverse-string code/459-repeated-substring-pattern code/541-reverse-string-ii code/58-zuo-xuan-zhuan-zi-fu-chuan-lcof tree code/101-symmetric-tree code/102-binary-tree-level-order-traversal code/104-maximum-depth-of-binary-tree code/106-construct-binary-tree-from-inorder-and-postorder-traversal code/108-convert-sorted-array-to-binary-search-tree code/110-balanced-binary-tree code/111-minimum-depth-of-binary-tree code/112-path-sum code/144-binary-tree-preorder-traversal code/145-binary-tree-postorder-traversal code/222-count-complete-tree-nodes code/226-invert-binary-tree code/236-lowest-common-ancestor-of-a-binary-tree code/257-binary-tree-paths code/404-sum-of-left-leaves code/450-delete-node-in-a-bst code/501-find-mode-in-binary-search-tree code/513-find-bottom-left-tree-value code/530-minimum-absolute-difference-in-bst code/538-convert-bst-to-greater-tree code/617-merge-two-binary-trees code/654-maximum-binary-tree code/669-trim-a-binary-search-tree code/700-search-in-a-binary-search-tree code/701-insert-into-a-binary-search-tree code/94-binary-tree-inorder-traversal code/98-validate-binary-search-tree Click to show internal directories. Click to hide internal directories.