剑指offer
Nibaby燕
这个作者很懒,什么都没留下…
展开
-
剑指offer之其它
面试题15:二进制中1的个数题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。分析:把一个整数减去1,再和原整数做与运算,会把该整数最右边的1变成0。 public int NumberOf1(int n) { int count = 0; while(n != 0){ count++; ...原创 2020-02-13 12:55:37 · 173 阅读 · 0 评论 -
剑指offer之二叉树
面试题7:重建二叉树题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。分析:前序遍历的第一个结点为二叉树的根结点,然后在中序遍历中找出根结点的位置即可确定左、右子树节点的数量,递归构造即可。 ...原创 2020-02-13 12:53:16 · 347 阅读 · 0 评论 -
剑指offer之栈和队列
目录面试题9:用两个栈实现队列拓展:用两个队列实现一个栈面试题30:包含min函数的栈面试题31:栈的压入、弹出序列面试题59:滑动窗口的最大值面试题9:用两个栈实现队列题目:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分析:进队列每次都压入stack1。出队列:若stack2不为空,直接出栈即可;否则将stack1的元素依次...原创 2020-02-13 11:53:40 · 175 阅读 · 0 评论 -
剑指offer之链表
目录面试题6:从尾到头打印链表面试题18:删除链表中重复的节点拓展:在O(1)时间内删除链表节点面试题22:链表中倒数第k个结点面试题23:链表中环的入口节点面试题24:反转链表面试题25:合并两个排序的链表面试题35:复杂链表的复制面试题52:两个链表的第一个公共结点面试题6:从尾到头打印链表题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayL...原创 2020-02-11 16:31:17 · 211 阅读 · 0 评论 -
剑指offer之字符串
面试题5:替换空格题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析:先遍历一次字符串,统计出字符串中空格的总数。然后从字符串的后面开始替换和复制,准备两个指针,一个指向原始字符串的末尾,一个指向替换之后的字符串末尾。 public String repla...原创 2020-01-17 13:33:53 · 332 阅读 · 0 评论 -
剑指offer之递归与动态规划
面试题10:斐波那契数列题目:现在要求输入一个整数n,请你输出斐波那契数列的第n项。第0项为0,第1项为1,f(n) = f(n-1) + f(n-2) ,n>1分析:如果用递归,重复计算会太多,时间复杂度是以n的指数的方式递增的。应该依次算出前n-1项的值,时间复杂度为O(n) public int Fibonacci(int n) { if(n =...原创 2020-01-20 13:07:35 · 204 阅读 · 0 评论 -
剑指offer之数组
目录面试题3:数组中重复的数字拓展:不修改数组找出重复数字 面试题4:二维数组中的查找面试题11:旋转数组的最小数字面试题21:调整数组顺序使奇数位于偶数前面面试题29:顺时针打印矩阵面试题39:数组中出现次数超过一半的数字面试题40:最小的k个数面试题42:连续子数组的最大和面试题45:把数组排成最小的数面试题46:数组中的逆序对面试题53:在排序...原创 2020-02-11 14:27:48 · 407 阅读 · 0 评论