
剑指offer刷题指东指西不指南北
剑指offer的刷题记录
王小扣
IT
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
5. 从尾到头打印链表
5. 从尾到头打印链表题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路解法1:顺序遍历最简单的方法就是对链表进行顺序遍历,需要借助JavaScript数组的几个内置的方法Array.reverse()顺序遍历,将值放到数组中,对数组进行翻转function printListFromTailToHead(head){ // write ...原创 2019-10-11 16:55:24 · 153 阅读 · 0 评论 -
6. 重建二叉树
6. 重建二叉树题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:递归思路:了解前序遍历和后序遍历的特征,前序遍历序列第一个元素为根节点后边为全部左子树节点+全部右子树节点;中序遍历序...原创 2019-10-11 16:59:29 · 163 阅读 · 0 评论 -
7. 用两个栈实现队列
7. 用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路入栈:向栈1中插入出栈:判断栈2是否为空空:栈1元素全部压入栈2栈2出栈[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pNrkex4T-1570784378627)(/images/剑指offer/7.用两个栈实现队列....原创 2019-10-11 17:00:10 · 152 阅读 · 0 评论 -
8. 旋转数组的最小数字
8. 旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路:二分查找规律:left>=right如果Array[mid]&...原创 2019-10-11 17:00:53 · 178 阅读 · 0 评论 -
9. 斐波那契数列
9. 斐波那契数列问题描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39解题思路解法1:递归/.javapublic class Solution { public int Fibonacci(int n) { if (n == 0) return 0; if (n == ...原创 2019-10-11 17:04:54 · 287 阅读 · 0 评论 -
10. 二进制中1的个数
10. 二进制中1的个数算法描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路解法1:可能引起死循环的解法输入的数n与1做与运算,1的左边位均为0,做与运算结果为0;结果为0或者1就看末位是0或者1输入n10101100001结果00001主要问题出在 n >> 1上面,负数的左移是在左边...原创 2019-10-11 17:05:15 · 241 阅读 · 0 评论