![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
ly294687451
每天进步一点点。
展开
-
剑指Offer-重建二叉树
题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 假如已知先序序列为ABDECF,中序序列为DBEAFC,如何求解后序序列?由于先序遍历树的规则为根左右,因此可以得出先序序列的第一个元素一...原创 2019-03-19 15:56:02 · 97 阅读 · 0 评论 -
剑指Offer-旋转数组的最小数字
题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE: 给出的所有元素都大于0,若数组大小为0,请返回0。 解题思路: 这道题最直观的解法并不难,从头到尾遍历数组一次,我们就能找出最小的元素。这种思路的时间复杂度显然...转载 2019-03-20 10:22:41 · 163 阅读 · 0 评论 -
剑指Offer-斐波那契数列
题目描述: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 效率很低的解法: 很多C语言教科书在讲递归函数的时候,都会用Fibonacci作为例子,很多人看到这道题会心生窃喜,因为递归方法很简单: public int Fibonacci(int n) { if (n <= 0) { return 0; ...原创 2019-03-20 11:03:54 · 98 阅读 · 0 评论 -
剑指Offer-替换空格
题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 1.首先遍历字符串,统计出空格数。 2.然后对原字符串进行扩容,每个空格用%20来代替,则代替后,每个空格多出两个字符。则扩容大小为空格数 * 2。 3.若从前向后遍历字符串,遇到空格后,每次都需要将该空格后的所有字...原创 2019-03-18 17:36:37 · 64 阅读 · 0 评论 -
剑指Offer-从尾到头打印链表
题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路: 链表的遍历肯定是从头至尾的。而题目要求我们返回从尾到头的链表值,则想到用栈来实现。当遍历链表时,顺序遍历,将每个结点的值依次压栈。待遍历完整个链表,再开始依次出栈,将出栈元素依次存入list中,即得到结果。 AC代码: public ArrayList<Integer> printList...原创 2019-03-18 18:03:19 · 71 阅读 · 0 评论 -
剑指Offer-数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 解题思路: 首先拿到这道题,给人的感觉非常简单。很快就能写出代码,如下: public double Power(double base,int exponent) { double result = 1.0; for(int i = 1;i <= ex...原创 2019-03-26 11:46:37 · 113 阅读 · 0 评论