# leetcode 练习笔记
# 参考链接
- git 上别人的 leetcode 题解笔记
- git 上别人的 leetcode 题解笔记
- 算法与数据结构文章列表-不错
- 王争-算法与数据结构专栏
- labuladong
- labuladong 的算法小抄
- LeetCode 刷题-知乎专栏
- 算法笔记-碎对象
- 常见算法面试题
- 可视化数据结构和算法演示
- 字节跳动最爱考的 64 道算法题(JS 版)
- 代码随想录
- LeetCode 题解 Js 版
- LeetCodeCookbook
- 视频讲解
https://leetcode-cn.com/problemset/all/
# String
- 无重复字符的最长子串-中等
- 最长回文子串-中等
- 最长公共子序列 LCS-中等-未完成
- 最长上升子序列
- 判断子序列-简单
- 罗马数字转整数
- 字符串循环左移
- 字符串的全排列
- 去除重复字母-困难
- 寻找最长公共前缀
- 有效的括号(平衡圆括号)-简单
- 实现字符串方法 strStr(indexOf)(这里还涉及到 prefixTable 动态规划获取)-简单
- 报数-简单
- 反转字符串-简单
- 字符串中的第一个唯一字符-简单
- 有效的字母异位词-简单
- 验证回文串
- 验证回文字符串 II
- 字符串转换整数(atoi)
- 版本号比较
- 括号生成-中等
- 千位分割数-简单
- 亲密字符串
- 压缩字符串-中等
- 交替合并字符串-简单
- 反转字符串中的元音字母-简单
- 反转字符串中的单词-中等
# LCS 的定义
- 最长公共子序列,即 Longest Common Subsequnce,LCS
- 一个序列 S 任意删除若干个字符得到的新序列 T,则 T 叫做 S 的子序列
- 两个序列 X 和 Y 的公共子序列中,长度最长的那个,定义为 X 和 Y 的最长公共子序列
- 字符串 13455 和 245576 的最长公共子序列为 455
- 字符串 acdfg 与 adfc 的最长公共子序列为 adf
- 注意区别最长公共子串(Longest Common Substring),最长公共子串要求连续
# 栈
# Array/队列
- 两数之和-简单
- 三数之和-中等
- 两数相加-中等
- 寻找两个排序数组的中位数-困难
- 买卖股票的最佳时机
- 买卖股票的最佳时机 II
- 最大子序和
- 寻找旋转排序数组中的最小值
- 寻找旋转排序数组中的最小值-2
- 零子数组
- 按奇偶排序数组-简单
- 删除排序数组中的重复项-简单
- 移除元素-简单
- 搜索插入位置-简单
- 旋转数组-简单
- 存在重复元素-简单
- 存在重复元素 2-简单
- 存在重复元素 3-简单
- 只出现一次的数字
- 只出现一次的数字 II
- 只出现一次的数字 III
- 两个数组的交集-简单
- 两个数组的交集 2-简单
- 加一-简单
- 移动零-简单
- 有效的数独-中等
- 旋转图像
- 合并两个有序数组-简单
- 颜色分类-中等
- 杨辉三角-简单
- 搜索旋转排序数组-中等
- 搜索旋转排序数组 II-中等
- 搜索旋转数组-中等
- 寻找数组的中心下标-简单
- 盛最多水的容器-中等
- 最小 K 个数-中等
- 最长连续递增序列-简单
- 最长递增子序列-中等
- 设计循环队列-中等
- 设计循环双端队列-中等
- 最近的请求次数
- 拥有最多糖果的孩子-简单
# Number
# 链表
- 合并两个有序链表-简单
- 删除链表中的节点
- 删除链表的倒数第 N 个节点
- 反转链表
- 反转链表 II
- 回文链表
- 环形链表
- 链表的中间节点
- 删除排序链表中的重复元素
- 旋转链表
- 两两交换链表中的节点
- 分隔链表
# 树
- 二叉树的最大深度-简单
- 验证二叉搜索树-中等
- 对称二叉树-简单
- 二叉树的前序遍历-简单
- 二叉树的层序遍历-简单
- 二叉树的层序遍历 II-中等
- 二叉树的后序遍历
- 将有序数组转换为二叉搜索树-简单
- N 叉树的前序遍历
- 二叉树的锯齿形层序遍历
- 从前序与中序遍历序列构造二叉树
- 翻转二叉树
- 求根节点到叶节点数字之和