algorithm-notes
algorithm-notes copied to clipboard
A Small Front-end Algorithm Note
leetcode notes
记录一个小前端的正规化重学算法成长史 🏄
个人计划
第一阶段
- [x] 梳理全部知识点概念
(13/13) - [x] 基础点实践
(12/12)
第二阶段
- [x] 数据结构定向刷题
第三阶段
- [ ] 算法设计及技巧定向刷题
第一阶段
知识梳理
- [x] 算法复杂度
Docs & Example - [x] 栈
Docs & Example - [x] 队列和双端队列
Docs & Example - [x] 链表
Docs & Example - [x] 集合
Docs & Example - [x] 字典
Docs & Example - [x] 散列表
Docs & Example - [x] 递归
Docs & Example - [x] 树
Docs & Example - [x] 二查堆和堆排序
Docs & Example - [x] 图
Docs & Example - [x] 排序和搜索算法
Sorting Docs & ExampleSearch Docs & Example - [x] 算法设计与技巧
Docs & Example
第二阶段
数据结构定向刷题
栈
leetcode#20.有效的括号leetcode#155.最小栈leetcode#232.用栈实现队列leetcode#678.有效的括号字符串leetcode#682.棒球比赛
队列和双端队列
leetcode#933.最近的请求次数leetcode#225.用队列实现栈leetcode#346.数据流中的移动平均值leetcode#387.字符串中的第一个唯一字符leetcode#1700.无法吃午餐的学生数量leetcode#622.设计循环队列leetcode#286.墙与门leetcode#200.岛屿数量leetcode#752.打开转盘锁leetcode#279.完全平方数
链表
leetcode#237.删除链表中的节点leetcode#206.反转链表leetcode#160.相交链表leetcode#234.回文链表leetcode#203.移除链表元素leetcode#83.删除排序链表中的重复元素leetcode#622.设计循环队列
集合
leetcode#349.两个数组的交集leetcode#1507.转变日期格式leetcode#705.设计哈希集合
字典
leetcode#1.两数之和剑指Offer#03.数组中重复的数字
散列表/哈希表
leetcode#217.存在重复元素leetcode#13.罗马数字转整数leetcode#141.环形链表
递归
leetcode#206.反转链表leetcode#101.对称二叉树leetcode#21.合并两个有序链表
树
leetcode#111.二叉树的最小深度leetcode#100.相同的树leetcode#94.二叉树的中序遍历leetcode#104.二叉树的最大深度leetcode#102.二叉树的层序遍历
堆
leetcode#215.数组中的第 K 个最大元素leetcode#1046.最后一块石头的重量leetcode#347.前 K 个高频元素leetcode#23.合并 K 个升序链表
图
leetcode#1791.找出星型图的中心节点leetcode#997.找到小镇的法官
第三阶段
算法设计及技巧定向刷题
排序算法
冒泡排序-leetcode#912.排序数组
选择排序-leetcode#88.合并两个有序数组
归并排序-leetcode#148.排序链表归并排序-leetcode#912.排序数组
搜索/查找算法
二分查找-leetcode#704.二分查找二分查找-leetcode#278.第一个错误的版本二分查找-leetcode#35.搜索插入位置
分而治之
leetcode#374.猜数字大小
动态规划
leetcode#70.爬楼梯leetcode#509.斐波那契数leetcode#746.使用最小花费爬楼梯leetcode#198.打家劫舍
贪心算法
回溯算法
双指针
左右指针-leetcode#977.有序数组的平方左右指针-leetcode#189.轮转数组左右指针-leetcode#167.两数之和 II - 输入有序数组左右指针-leetcode#344.反转字符串左右指针-leetcode#557.反转字符串中的单词 III左右指针-leetcode#75.颜色分类左右指针-leetcode#1446.连续字符
快慢指针-leetcode#876.链表的中间结点快慢指针-leetcode#19.删除链表的倒数第 N 个结点快慢指针-leetcode#26.删除有序数组中的重复项快慢指针-leetcode#283.移动零快慢指针-leetcode#27.移除元素快慢指针-leetcode#80.删除有序数组中的重复项 II
滑动窗口-leetcode#3.无重复字符的最长子串滑动窗口-leetcode#643.子数组最大平均数 I滑动窗口-leetcode#1456.定长子串中元音的最大数目滑动窗口-leetcode#1423.可获得的最大点数滑动窗口-leetcode#76.最小覆盖子串滑动窗口-leetcode#209.长度最小的子数组滑动窗口-leetcode#1695.删除子数组的最大得分滑动窗口-leetcode#438.找到字符串中所有字母异位词滑动窗口-leetcode#567.字符串的排列