3.数组中重复数字:每个位置放置数字与下标对应相等 O(n)

4.二维数组中的查找:右下角开始比较 O(m+n)

5.替换空格:python直接替换

6.从尾到头打印链表: 借助栈或直接利用系统调用栈 // 创建链表(设置next节点时就会创建下一个节点), 打印链表(最后打印nil)

7.重建二叉树:前序中序遍历特点递归重建左右子树

xxx8.二叉树的下一个节点:根据中序遍历特点,按有无右子树分情况讨论

xxx9.两个栈实现队列:栈的特点

10.斐波那契数列:递归思想,循环方法自下而上计算O(n)

xxx11.旋转数组最小数字:二分查找,考虑left,right,mid三个下标值相同情况。O(logn)

12.矩阵中的路径:回溯法,递归解决,需要'#’标记走过的路径,回溯时变为原来的字母
https://github.com/Theodoree/sample_project/blob/2e1f1bc4c1317ade5aac86f83ef0642e91db6a3f/leekcode/%E5%89%91%E6%8C%87offer/go/12.go

13.机器人的运动范围:回溯法,递归解决

15.二进制中1的个数:位运算,将一个整数减去1再和原来整数做位与运算,相当于把整数二进制最右边的1变为0

16.数值的整数次方:递归 O(logn)

17.打印从1到最大的n位数:dfs,大数问题

18.删除链表中重复节点:设置dummy头结点,指针操作

21.调整数组顺序使奇数位于偶数前面:双指针 O(n)

22.链表中倒数第k个节点:双指针,一个指针先走k步

23.链表中环的入口节点:快慢指针,数学证明 (百度)

24.反转链表:两种方法,指针调整

25.合并两个排序链表:新建一个链表;在原链表基础上合并

26.树的子结构:两个递归,一个遍历A树节点,找到与B树根节点值相同的节点;一个遍历以A树节点为根结点的子树和B树,判断其是否包括B

27.二叉树的镜像:递归考察先序遍历;非递归考察层序遍历

28.对称的二叉树:递归

29.顺时针打印矩阵:设置up,down,left,right四个位置变量,顺时针遍历

30.包含min函数的栈:维护一个栈,栈顶元素永远是最小值

31.栈的压入弹出序列:栈的性质

32:从上到下打印二叉树:层序遍历

33.二叉搜索树的后续遍历序列:后续遍历特点,递归解决

34.二叉树中和为某一值的路径:dfs记录每一条路径和

35.复杂链表的复制:指针操作,三步走战略:复制原始链表节点,设置节点random指针,链表拆分

36.二叉搜索树与双向链表:中序遍历的考察

37.序列化二叉树:先序遍历及利用序列构造树

38.字符串的排列:全排列问题,dfs解决

39.数组中出现次数超过一半的数字:partition函数可以实现O(n)时间找到第k大的数O(n);利用数组性质,两两相消得到最后的数字 O(n)

40.最小的k个数:partition函数找到第k个数位置,返回该数左边k个数 O(n);最大堆,维护大小为k的最大堆 O(nlogk)

41.数据流中的中位数:最小堆与最小堆,维护一个最大堆,一个最小堆,最大堆中所有元素小于最小堆中所有元素,两个堆元素保持相同,堆顶元素即为中位数 O(logn)

42.连续子数组最大和:动态规划 O(n)

44.把数组排成最小的数:partition函数排序,设置比较大小规则 O(nlogn)

46.数字翻译成字符串:动态规划 O(n)

47.礼物的最大价值:动态规划

48.最长不含重复子串的子字符串:动态规划 O(n)

49.丑数:动态规划

50.第一个只出现一次的字符:哈希表 O(n)

51.数组中的逆序对:归并排序的应用 O(nlogn)O(n)

52.两个链表的第一个公共节点:遍历至尾节点跳到另一个链表头结点继续遍历 O(m+n)(百度)

53.数字在排序数组中出现的次数:二分查找 O(logn)

54.二叉搜索树的第k大节点:二叉搜索树的中序遍历

55.二叉树的深度:后序遍历

56.数组中只出现一次的两个数字:位运算的考察

57.和为s的数字:双指针 O(n)

58.左旋转字符串:多次翻转

59.滑动窗口最大值:维护最大值队列 O(n)

61.扑克牌中的顺子:比较0的个数与空缺个数

62.圆圈中最后剩下的数字:环形链表 O(mn);约瑟夫环 O(n)

63.股票的最大利润:动态规划 O(n)

67.字符串转化为整数:思维全面性

68.树中两个节点最低公共祖先:递归;非递归 (微软)

剑指offer第二版速查表的更多相关文章

  1. 《剑指offer(第二版)》面试题55——判断是否为平衡二叉树

    一.题目大意 输入一颗二叉树,判断该二叉树是否为平衡二叉树(AVL树). 二.题解 <剑指offer>上给出了两种解决方式: 1.第一种是从根节点开始,从上往下遍历每个子节点并计算以子节点 ...

  2. 《剑指offer 第二版》题解

    剑指Offer 按题号排序 面试题 3:数组中重复的数字 面试题 4:二维数组中的查找 面试题 5:替换空格 面试题 6:从头到尾打印链表 面试题 7:重建二叉树 面试题 8:二叉树的下一个节点 面试 ...

  3. 《剑指offer(第二版)》面试题60——n个骰子的点数

    一.题目描述 把n个骰子仍在地上,所有的骰子朝上的一面的点数之和为s,输入n,打印出s所有可能的值出现的概率. 二.题解 <剑指offer>上给出的两种方法,尤其是代码,晦涩难懂且没有注释 ...

  4. 经典面试题目——找到第n个丑数(参考《剑指offer(第二版)》面试题49)

    一.题目大意 给你一个数n,要求返回第n个丑数.其中,丑数的定义如下: 丑数是指只包含因子2.3和5的数.(数字1也是丑数,不过是个特例)引用<剑指offer>上的话来说,对于一个数M,如 ...

  5. 《剑指offer(第二版)》——面试题36:二叉搜索树与双向链表

    具体的题目大意和参考思路在此处不详述(见<剑指offer>),实质就是在中序遍历的过程中调整指针的指向,关于中序遍历有递归和非递归两种操作,所以此处也用了两种方法. 方法1(递归法): 代 ...

  6. 《剑指offer(第二版)》面试题64——求1+2+...+n

    一.题目描述 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字以及条件判断语句 (即三元运算符,A? B : C) 二.题解 虽然求和问 ...

  7. 结合《剑指offer(第二版)》面试题51来谈谈归并排序

    一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对.要求输出数组A中的逆序对的总数.例如,对于数组{7,5,6 ...

  8. 剑指offer第二版-3.数组中重复的数

    面试题3:数组中重复的数 题目要求: 在一个长度为n的数组中,所有数字的取值范围都在[0,n-1],但不知道有几个数字重复或重复几次,找出其中任意一个重复的数字. 解法比较: /** * Copyri ...

  9. 剑指offer第二版-10.斐波那契数列

    面试题10:斐波那契数列 题目要求: 求斐波那契数列的第n项的值.f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2) n>1 思路:使用循环从下往上计算数列. 考点:考察对递归 ...

随机推荐

  1. 项目中vuex的加入

    1, 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象.当应用变得非常复杂时,store 对象就有可能变得相当臃肿. 为了解决以上问题,Vuex 允许我们将 store 分割成模块(modu ...

  2. React源码解析之React.Children.map()(五)

    一,React.Children是什么? 是为了处理this.props.children(this.props.children表示所有组件的子节点)这个属性提供的工具,是顶层的api之一 二,Re ...

  3. Day0 认识Java与变量类型

    字节码与虚拟机 Java介于编译型语言和解释型语言之间.编译型语言如C.C++,代码是直接编译成机器码执行,但是不同的平台(x86.ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码 ...

  4. 部署DVWA时的一些问题和解决办法(一)

    第一个有可能遇到的问题 0x4 配置PHP 配置PHP,GD支持 系统从2017更新到2018多个php版本共存问题解决,phpinfo 显示7.0 ,而php -v 显示7.2问题 apt-get ...

  5. bootstrap的pillbox使用

    使用bootstrap的cameo模版,搭建了一个cms系统,使用pillbox做显示的时候,出现点击×失败的问题. 分析了一下pillbox这个控件的使用方法. pillbox的样例在cameo/f ...

  6. java 数据类型优先级

    由低到高:byte,short,char—> int —> long—> float —> double 1. 不能对boolean类型进行类型转换. 2. 不能把对象类型转换 ...

  7. Python学习之字典集合篇

    lambda表达式:起到一个函数速写的作用,允许在代码内嵌入一个函数的定义; filter()函数:1.用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表.2.接收两个参数,第一个为 ...

  8. Flask 学习之 路由

    一.路由的基本定义 # 指定访问路径为 demo1 @app.route('/demo1') def demo1(): return 'demo1' 二.常用路由设置方式 @app.route('/u ...

  9. PHP+Mysql防止SQL注入的方法

    这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 方法一: mysql_real_escape_string -- 转义 S ...

  10. php常用函数归纳

    php常用函数归纳: /** * 截取指定长度的字符 * @param type $string 内容 * @param type $start 开始 * @param type $length 长度 ...