数据结构
链表
- python JZ6 从尾到头打印链表(剑指offer)
- python JZ24 反转链表(剑指offer)
- python JZ25 合并两个排序的链表(剑指offer)
- python JZ52 两个链表的第一个公共结点(剑指offer)
- python JZ23 链表中环的入口结点(剑指offer)
- python JZ22 链表中倒数最后k个结点(剑指offer)
- python JZ35 复杂链表的复制(剑指offer)
- python JZ76 删除链表中重复的结点(剑指offer)
- python JZ18 删除链表的节点(剑指offer)
树
- python JZ55 二叉树的深度(剑指offer) *
- python JZ77 按之字形顺序打印二叉树(剑指offer) *
- python JZ54 二叉搜索树的第k个节点(剑指offer) *
- python JZ7 重建二叉树(剑指offer)
- python JZ26 树的子结构(剑指offer) *
- python JZ27 二叉树的镜像(剑指offer) *
- python JZ32 从上往下打印二叉树(剑指offer) *
- python JZ33 二叉搜索树的后序遍历序列(剑指offer) *
- python JZ82 二叉树中和为某一值的路径(一)(剑指offer) *
- python JZ34 二叉树中和为某一值的路径(二)(剑指offer) *
- python JZ36 二叉搜索树与双向链表(剑指offer) *
- python JZ79 判断是不是平衡二叉树(剑指offer) *
- python JZ8 二叉树的下一个结点(剑指offer)
- python JZ28 对称的二叉树(剑指offer) *
- python JZ78 把二叉树打印成多行(剑指offer) *
- python JZ37 序列化二叉树(剑指offer) *
- python JZ84 二叉树中和为某一值的路径(三)(剑指offer) *
- python JZ86 在二叉树中找到两个节点的最近公共祖先(剑指offer) *
- python JZ68 二叉搜索树的最近公共祖先(剑指offer)*
队列 & 栈
- python JZ9 用两个栈实现队列(剑指offer)
- python JZ30 包含min函数的栈(剑指offer)
- python JZ31 栈的压入、弹出序列(剑指offer)
- python JZ73 翻转单词序列(剑指offer) *
- python JZ59 滑动窗口的最大值(剑指offer) *
算法
搜索算法
- python JZ53 数字在升序数组中出现的次数(剑指offer) *
- python JZ4 二维数组中的查找(剑指offer)
- python JZ11 旋转数组的最小数字(剑指offer)
- python JZ38 字符串的排列(剑指offer) *
- python JZ44 数字序列中某一位的数字(剑指offer) *
动态规划
- python JZ42 连续子数组的最大和(剑指offer) *
- python JZ85 连续子数组的最大和(二)(剑指offer) *
- python JZ69 跳台阶(剑指offer) *
- python JZ10 斐波那契数列(剑指offer)
- python JZ19 正则表达式匹配(剑指offer) *
- python JZ71 跳台阶扩展问题(剑指offer) *
- python JZ70 矩形覆盖(剑指offer) *
- python JZ63 买卖股票的最好时机(一)(剑指offer) *
- python JZ47 礼物的最大价值(剑指offer) *
- python JZ48 最长不含重复字符的子字符串(剑指offer) *
- python JZ46 把数字翻译成字符串(剑指offer) *
回溯
排序
- python JZ3 数组中重复的数字(剑指offer)
- python JZ51 数组中的逆序对(剑指offer) *
- python JZ40 最小的K个数(剑指offer) *
- python JZ41 数据流中的中位数(剑指offer) *
位运算
- python JZ65 不用加减乘除做加法(剑指offer) *
- python JZ15 二进制中1的个数(剑指offer) *
- python JZ16 数值的整数次方(剑指offer) *
- python JZ56 数组中只出现一次的两个数字(剑指offer) *
- python JZ64 求1+2+3+…+n(剑指offer) *
模拟
- python JZ29 顺时针打印矩阵(剑指offer) *
- python JZ61 扑克牌顺子(剑指offer) *
- python JZ67 把字符串转换成整数(atoi)(剑指offer) *
- python JZ20 表示数值的字符串(剑指offer) *
其他
- python JZ66 构建乘积数组(剑指offer) *
- python JZ50 第一个只出现一次的字符(剑指offer) *
- python JZ5 替换空格(剑指offer)
- python JZ21 调整数组顺序使奇数位于偶数前面(一)(剑指offer) *
- python JZ39 数组中出现次数超过一半的数字(剑指offer) *
- python JZ43 整数中1出现的次数(从1到n整数中1出现的…(剑指offer) *
- python JZ45 把数组排成最小的数(剑指offer) *
- python JZ49 丑数(剑指offer) *
- python JZ74 和为S的连续正数序列(剑指offer) *
- python JZ57 和为S的两个数字(剑指offer) *
- python JZ58 左旋转字符串(剑指offer) *
- python JZ62 孩子们的游戏(圆圈中最后剩下的数)(剑指offer) *
- python JZ75 字符流中第一个不重复的字符(剑指offer) *
- python JZ14 剪绳子(剑指offer) *
- python JZ81 调整数组顺序使奇数位于偶数前面(二)(剑指offer) *
- python JZ83 剪绳子(进阶版)(剑指offer) *
- python JZ17 打印从1到最大的n位数(剑指offer) *