golang
单链表
图
队列
查找
排序
栈
串
树堆
树
字典树(前缀树)
参考:https://github.com/lifei6671/interview-go
- 01-策略模式(strategy)
- 02-装饰器模式(decorator)
- 03-适配器模式(adaptor)
- 04-单例模式(singleton)
- 05-观察者模式(observer)
- 06-工厂模式(factory)
- 07-模版方法(template)
- 08-外观模式(facade)
- 09-代理模式(proxy)
- 10-责任链模式(chain)
- 11-功能选项模式(options)
- 12-工人列队模式(worker)
###《剑指offer 第一版》
003-数组中重复的数字
004-二维数组中的查找
005-替换空格
006-从尾到头打印链表
007-重建二叉树
008-二叉树的下一个结点
009-用两个栈实现队列
010-斐波那契数列
011-旋转数组的最小数字
012-矩阵中的路径
013-机器人的运动范围
014-剪绳子
015-二进制中1的个数
016-数值的整数次方
019-正则表达式匹配
020-表示数值的字符串
021-调整数组顺序使奇数位于偶数前面(一)
022-链表中倒数最后k个结点
023-链表中环的入口结点
024-反转链表
025-合并两个排序的链表
026-树的子结构
027-二叉树的镜像
028-对称的二叉树
029-顺时针打印矩阵
030-包含min函数的栈
031-栈的压入、弹出序列
032-从上往下打印二叉树
033-二叉搜索树的后序遍历序列
034-二叉树中和为某一值的路径
035-复杂链表的复制
036-二叉搜索树与双向链表
037-序列化二叉树
038-字符串的排列
039-数组中出现次数超过一半的数字
040-最小的K个数
041-数据流中的中位数
042-连续子数组的最大和
045-把数组排成最小的数
047-礼物的最大价值
048-最长不含重复字符的子字符串
049-丑数
050-第一个只出现一次的字符
051-数组中的逆序对
052-两个链表的第一个公共结点
053-数字在升序数组中出现的次数
054-二叉搜索树的第k个结点
055-二叉树的深度
056-数组中只出现一次的两个数字
057-和为S的两个数字
058-左旋转字符串
059-滑动窗口的最大值
061-扑克牌顺子
062-孩子们的游戏(圆圈中最后剩下的数)
063-买卖股票的最好时机(一)
064-求1+2+3+...+n
065-不用加减乘除做加法
066-构建乘积数组
067-把字符串转换成整数(atoi)
068-二叉搜索树的最近公共祖先
069-跳台阶
070-矩形覆盖
071-跳台阶扩展问题
073-翻转单词序列
074-和为S的连续正数序列
075-字符流中第一个不重复的字符
076-删除链表中重复的结点
077-按之字形顺序打印二叉树
078-把二叉树打印成多行
079-判断是不是平衡二叉树
081-调整数组顺序使奇数位于偶数前面(二)
082-二叉树中和为某一值的路径(一)
083-剪绳子(进阶版)
084-二叉树中和为某一值的路径(三)
085-连续子数组的最大和(二)
086-在二叉树中找到两个节点的最近公共祖先
###《剑指offer 专项突击版》
001-整数除法
002-二进制加法
003-前n个数字二进制中1的个数
004-只出现一次的数字
005-单词长度的最大乘积
006-排序数组中两个数字之和
007-数组中和为0的三个数
008-和大于等于target的最短子数组
009-乘积小于K的子数组
010-和为k的子数组
011-0和1个数相同的子数组
012-左右两边子数组的和相等
013-二维子矩阵的和
014-字符串中的变位词
015-字符串中的所有变位词
016-不含重复字符的最长子字符串
017-含有所有字符的最短字符串
018-有效的回文
019-最多删除一个字符得到回文
020-回文子字符串的个数
021-删除链表的倒数第n个结点
022-链表中环的入口节点
023-两个链表的第一个重合节点
024-反转链表
025-链表中的两数相加
026-重排链表
027-回文链表
028-展平多级双向链表
029-排序的循环链表
030-插入、删除和随机访问都是O(1)的容器
031-最近最少使用缓存
032-有效的变位词
033-变位词组
034-外星语言是否排序
035-最小时间差
036-后缀表达式
037-小行星碰撞
038-每日温度
039-直方图最大矩形面积
041-滑动窗口的平均值
042-最近请求次数
044-二叉树每层的最大值
045-二叉树最底层最左边的值
046-二叉树的右侧视图
047-二叉树剪枝
048-序列化与反序列化二叉树
049-从根节点到叶节点的路径数字之和
050-向下的路径节点之和
051-节点之和最大的路径
052-展平二叉搜索树
053-二叉搜索树中的中序后继
054-所有大于等于节点的值之和
055-二叉搜索树迭代器
056-二叉搜索树中两个节点之和
057-值和下标之差都在给定的范围内
058-日程表
062-实现前缀树
063-替换单词
064-神奇的字典
065-最短的单词编码
066-单词之和
067-最大的异或
068-查找插入位置
069-山峰数组的顶部
070-排序数组中只出现一次的数字
072-求平方根
073-狒狒吃香蕉
074-合并区间
075-数组相对排序
076-数组中的第k大的数字
077-链表排序
078-合并排序链表
079-所有子集
080-含有k个元素的组合
081-允许重复选择元素的组合
082-含有重复元素集合的组合
083-没有重复元素集合的全排列
084-含有重复元素集合的全排列
085-生成匹配的括号
086-分割回文子字符串
087-复原IP
088-爬楼梯的最少成本
089-房屋偷盗
090-环形房屋偷盗
091-粉刷房子
092-翻转字符
093-最长斐波那契数列
094-最少回文分割
095-最长公共子序列
096-字符串交织
097-子序列的数目
098-路径的数目
099-最小路径之和
100-三角形中最小路径之和