注:本题单上的题目一般不会做详细分析,主要是记录给自己看的,想知道为什么可以去买左神的书,讲的非常详细!
第一章:栈和队列
- 设计一个有 getMin 功能的栈:链接
- 由 2 个栈组成的队列:略
- 如何仅用递归函数和栈操作逆序一个栈:略
- 猫狗队列:略
- 用一个栈实现另一个栈的排序:略
- 用栈来求解汉诺塔问题:略
- 生成窗口最大值数组:链接
- 单调栈结构:链接
- 求最大子矩阵的大小:链接
- 最大值减去最小值小于或等于 num 的子数组数量:链接
- 可见山峰对数量:链接和链接
第二章:链表问题
- 打印两个有序列表的公共部分:略
- 在单链表和双链表中删除倒数第 k 个节点:略
- 删除链表中间节点和 a/b 处的节点:略
- 反转单向和双向链表:略
- 反转部分单向链表:略
- 环形单链表的约瑟夫问题:链接
- 判断一个链表是否为回文结构:链接
- 将单向链表按某值划分为左边小,中间相等,右边大的形式:链接
- 复制带随机指针的链表:链接
- 两个单链表生成相加链表:略
- 两个链表相交的一系列问题:链接
- 将单链表的每 K 个节点之间逆序:链接
- 删除无序单链表中值重复出现的节点:略
- 在单链表中删除指定值的节点:略
- 将搜索二叉树转换成双向链表:略(要LeetCode会员)以后补
- 单链表的选择排序:略
- 一种怪异的节点删除方式:略
- 向有序的环形单链表中插入新节点:略
- 合并两个有序的单链表:略
- 按照左右半区的方式重新组合单链表:略
第三章:二叉树问题
- 分别用递归和非递归方式实现二叉树先序,中序和后序遍历:链接
- 打印二叉树边界节点:链接
- 如何较为直观地打印二叉树:略
- 二叉树的序列化和反序列化:略
- 遍历二叉树的神级方法:链接
- 在二叉树中找到累加和为指定值的最长路径长度:链接
- 找到二叉树中的最大二叉搜索子树:链接
- 找到二叉树中符合搜索二叉树条件的最大拓扑结构:链接
- 二叉树的按层打印与 ZigZag 打印:略
- 调整搜索二叉树的两个错误的节点:没有找到相关的题
- 判断 t1 树是否包含 t2 树全部的拓扑结构:略
- 判断 t1 树中是否含有与 t2 树拓扑结构完全相同的子树:链接
- 判断二叉树是否为平衡二叉树:略
- 根据后序数组重建搜索二叉树:略
- 判断一颗二叉树是否是搜索二叉树和完全二叉树:略
- 通过有序数组生成平衡搜索二叉树:略
- 在二叉树中找到一个节点的后继节点:链接
- 在二叉树中找到两个节点的最近公共祖先:链接和链接
- Tarjan 算法与并查集解决二叉树节点间最近公共祖先的批量查询问题:链接
- 二叉树节点间的最大距离问题:略
- 派队的最大快乐值:链接
- 通过先序和中序数组生成后续数组:略
- 统计和生成所有不同的二叉树:链接
- 统计完全二叉树的节点数:略
第四章:递归和动态规划
- 斐波那契数列问题的递归和动态规划:链接和链接
- 矩阵的最小路径和:略
- 换钱的最少货币数:链接
- 机器人达到指定位置的方法数:链接
- 换钱的方法数:链接
- 打气球的最大分数:链接
- 最长递增子序列:链接
- 信封嵌套问题:链接
- 汉诺塔问题:链接或链接
- 最长公共子序列问题:链接
- 最长公共子串问题:链接
- 子数组异或和为0的最多划分:链接
- 最小编辑代价:链接
- 字符串的交错组成:链接
- 龙与地下城游戏:链接
- 数字字符串转换为字母组合的种数:链接
- 表达式得到期望结果的组成种数:链接
- 排成一条线的纸牌博弈问题:链接
- 跳跃游戏:链接
- 数组中的最长连续序列:链接
- N 皇后问题:链接
第五章:字符串问题
- 判断两个字符串是否互为变形词:略
- 判断两个字符串是否互为旋转词:略
- 将整数数字字符串转为整数值:链接
- 字符串的统计字符串:略
- 判断字符数组中是否所有字符都只出现过一次:略
- 在有序但有空的数组中查找字符串:略
- 字符串的调整与替换:略
- 翻转字符串:略
- 完美洗牌问题:链接和链接
- 删除多余字符得到字典序最小的字符串:略
- 数组中两个字符串的最小距离:略
- 字符串的转换路径问题:链接
- 添加最少的字符使字符串整体都是回文字符串:链接和链接
- 括号字符串的有效性和最长有效长度:链接
- 公式字符串求值:链接
- 0 左边必有 1 的二进制字符串数量:略
- 拼接所有字符串产生字典序最小的字符串:链接
- 找到字符串的最长无重复字符子串:略
- 找到指定的新类型字符:链接(查无此题)
- 旋变字符串问题:链接
- 最小包含子串长度:链接(查无此题)
- 回文最少分割数:链接
- 字符串匹配问题:链接
- 字典树(前缀树)的实现:链接
- 子数组最大异或和:链接
第六章:大数据和空间限制
- 认识布隆过滤器:略
- 只用2GB内存在20亿个整数中找到出现次数最多的数:略
- 40亿个非负整数中找到未出现的数:略
- 找到100亿个URL中重复的URL及搜索词汇的Top k问题:略
- 40亿个非负整数中找到出现两次的数和所有数的中位数:略
- 一致性哈希算法的基本原理:略
- 岛问题:略
第七章:位运算
- 不用额外的变量交换两个整数的值:略
- 不做任何比较判断找出两个数中较大的数:略(这两章题目基本都没有OJ的,只能看书)
- 只用位运算不用算术运算实现整数的加减乘除运算:略
- 整数的二进制数表达中有多少个1:略
- 在其他数都出现偶数次的数组中找到出现奇数次的数:链接
- 在其他数都出现k次的数组中找到出现1次的数:链接
第八章:数组和矩阵问题
- 转圈打印矩阵:略
- 将正方形矩阵顺时针旋转90度:略
- "之"字形打印矩阵:略
- 找到无序数组中最小的k个数:链接
- 需要排序的最短子数组长度:链接
- 在数组中找出出现次数大于N/K的数:链接和链接
- 在行列都排好序的矩阵中找指定数:链接
- 最长可整合子数组的长度:略
- 不重复打印排序数组中相加和为给定值的所有二元组和三元组:略
- 未排序正数数组中累加和为给定值的最长子数组长度:略(双指针)
- 未排序整数数组中累加和为给定值的最长子数组长度:链接
- 未排序整数数组中累加和小于等于给定值的最长子数组长度:链接
- 计算数组的小和:链接
- 自然数数组的排序:略
- 奇数下标都是奇数或者偶数下标都是偶数:略
- 子数组最大累加和问题:链接
- 子矩阵最大累加和问题:链接
- 在数组中找到一个局部最小的位置:链接
- 数组中子数组的最大累乘积:链接
- 打印N个数组整体最大的Top K:链接
- 边界都是1的最大正方形大小:链接
- 不包含本位置值的累乘数组:略
- 数组的partition调整:略
- 求最短通路值:
- 数组中未出现的最小正整数:
- 数组排序之后相邻数的最大差值:
- 做项目的最大收益问题:
- 分金条的最小花费:
- 大楼轮廓问题:
- 加油站良好出发点问题:
- 容器盛水问题:
第九章:其他题目
- 从5随机到7随机及其扩展:
- 一行代码求两个数的最大公约数:略