剑指offer系列刷题笔记汇总

剑指Offer系列刷题笔记汇总
flyingsen 2018-06-04 09:37:29 352 收藏
分类专栏: 剑指offer

本文转自:个人网站:点击查看

一前言
二总结
    链表-8道
    二叉树12道
    二叉搜索树3道
    数组11道
    字符串8道
    栈3道
    递归4道
    回溯法2道
    其他15道

一、前言

本系列文章为《剑指Offer》刷题笔记。
刷题平台:牛客网
书籍下载:共享资源

刷题刷的比较慢,花费了两个多月,终于将所有题目过了一遍,牛客网一共有66道题,这次刷题主要使用C++,接下来会使用Python重新过一遍,并对这些写过的文章进行更新。同时,也会重新开始刷Leetcode。
二、总结

现对这66道题目进行了粗略的划分,整理如下:
链表-8道:

剑指Offer(三):从尾到头打印链表
剑指Offer(十四):链表中倒数第k个结点
剑指Offer(十五):反转链表
剑指Offer(十六):合并两个排序的链表
剑指Offer(二十五):复杂链表的复制
剑指Offer(三十六):两个链表的第一个公共结点
剑指Offer(五十五):链表中环的入口结点
剑指Offer(五十六):删除链表中重复的结点

二叉树(12道):

剑指Offer(四):重建二叉树
剑指Offer(十七):树的子结构
剑指Offer(十八):二叉树的镜像
剑指Offer(二十二):从上往下打印二叉树
剑指Offer(二十四):二叉树中和为某一值的路径
剑指Offer(三十八):二叉树的深度
剑指Offer(三十九):平衡二叉树
剑指Offer(五十七):二叉树的下一个结点
剑指Offer(五十八):对称的二叉树
剑指Offer(五十九):按之字顺序打印二叉树
剑指Offer(六十):把二叉树打印成多行
剑指Offer(六十一):序列化二叉树

二叉搜索树(3道):

剑指Offer(二十三):二叉搜索树的后序遍历序列
剑指Offer(二十六):二叉搜索树与双向链表
剑指Offer(六十二):二叉搜索树的第k个结点

数组(11道):

剑指Offer(一):二维数组中的查找
剑指Offer(六):旋转数组的最小数字
剑指Offer(十三):调整数组顺序使奇数位于偶数前面
剑指Offer(二十八):数组中出现次数超过一半的数字
剑指Offer(三十):连续子数组的最大和
剑指Offer(三十二):把数组排成最小的数
剑指Offer(三十五):数组中的逆序对
剑指Offer(三十七):数字在排序数组中出现的次数
剑指Offer(四十):数组中只出现一次的数字
剑指Offer(五十):数组中重复的数字
剑指Offer(五十一):构建乘积数组

字符串(8道):

剑指Offer(二):替换空格
剑指Offer(二十七):字符串的排列
剑指Offer(三十四):第一个只出现一次的字符
剑指Offer(四十三):左旋转字符串
剑指Offer(四十四):翻转单词顺序序列
剑指Offer(四十九):把字符串转换成整数
剑指Offer(五十二):正则表达式匹配
剑指Offer(五十三):表示数值的字符串

栈(3道):

剑指Offer(五):用两个栈实现队列
剑指Offer(二十):包含min函数的栈
剑指Offer(二十一):栈的压入、弹出序列

递归(4道):

剑指Offer(七):裴波那契数列
剑指Offer(八):跳台阶
剑指Offer(九):变态跳台阶
剑指Offer(十):矩形覆盖

回溯法(2道):

剑指Offer(六十五):矩阵中的路径
剑指Offer(六十六):机器人的运动范围

其他(15道):

剑指Offer(十一):二进制中1的个数
剑指Offer(十二):数值的整数次方
剑指Offer(十九):顺时针打印矩阵
剑指Offer(二十九):最小的K个数
剑指Offer(三十一):整数中1出现的次数(从1到n整数中1出现的次数)
剑指Offer(三十三):丑数
剑指Offer(四十一):和为S的连续正数序列
剑指Offer(四十二):和为S的两个数字
剑指Offer(四十五):扑克牌顺子
剑指Offer(四十六):孩子们的游戏(圆圈中最后剩下的数)
剑指Offer(四十七):求1+2+3+…+n
剑指Offer(四十八):不用加减乘除的加法
剑指Offer(五十四):字符流中第一个不重复的字符
剑指Offer(六十三):数据流中的中位数
剑指Offer(六十四):滑动窗口的最大值

Github项目:https://github.com/Jack-Cherish/LeetCode

分类二

一、线性表

1、数组

面试题3:二维数组中的查找

面试题14:调整数组顺序使得奇数位于偶数前面

面试题29:数组中出现超过一半的数字

面试题30:最小的k个数

面试题33:把数组排成最小的数

面试题36:数组中的逆序对

面试题40:数字在排序数组中出现的次数

面试题51:数组中重复的数字

面试题52:构建乘积数组

2、链表

面试题5:从尾到头打印链表

面试题13:在O(1)时间删除链表结点

面试题15:链表中倒数第k个结点

面试题16:反转链表

面试题17:合并两个排序的链表

面试题26:复杂链表的复制

面试题37:两个链表的第一个公共结点

面试题56:链表中环的入口结点

面试题57:删除链表中重复的结点

二、字符串

面试题4:替换空格

面试题12:打印1到最大的n位数

面试题28:字符串的排列

面试题32:从1到n整数中1出现的次数

面试题35:第一个只出现1次的字符

面试题42:反转单词顺序以及坐旋转字符串

面试题49:把字符串转换成整数

面试题53:正则表达式匹配

面试题54:表示数值的字符串

面试题55:字符流中第一个不重复的字符

三、栈和队列

面试题7:用两个栈实现队列

面试题21:包含min函数的栈

面试题22:栈的压入、弹出序列

四、树

面试题6:重建二叉树

面试题18:树的子结构

面试题19:二叉树镜像

面试题23:从上往下打印二叉树

面试题24:二叉搜索树的后序遍历

面试题25:二叉树中和为某一值的路径

面试题27:二叉搜索树与双向链表

面试题39:二叉树的深度

面试题50:树中两个节点的最低公共祖先

面试题58:二叉树的下一个节点

面试题59:对称的二叉树

面试题60:把二叉树打印成多行

面试题61:按之字形顺序打印二叉树

面试题62:序列化二叉树

面试题63:二叉搜索树的第k个结点

面试题65:滑动窗口的最大值

五、查找和排序

面试题8:旋转数组中的最小数字

六、动态规划

面试题9:斐波那契数列

面试题31:连续子数组的最大和

面试题34:丑数

面试题45:圆圈中最后剩下的数字

七、回朔法

面试题66:矩阵中的路径

面试题67:机器人的运动范围

八、细节实现题

面试题10:二进制中1的个数

面试题11:数值的整数次方

面试题20:顺时针打印矩阵

面试题41:和为s的两个数字VS和为s的连续正数序列

面试题43:n哥骰子的点数

面试题44:扑克牌顺子

面试题46:求1+2+3+…+n

面试题47:不用加减乘除做加法

面试题64:数据流中的中位数

作者:代码狗11
来源:CSDN
原文:https://blog.csdn.net/yuhuaihzu/article/details/76974393
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(#,剑指offer)