![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
noob_Cliam
这个作者很懒,什么都没留下…
展开
-
剑指offer-重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 解题思路: 通过递归,利用前序遍历为“根-左-右”、后序遍历为“左-根-右”的特点,在每一次递归中,将数组分为左子树,右子树,并按左子树的长度在前...原创 2019-03-05 18:36:45 · 132 阅读 · 0 评论 -
剑指offer-用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 由于栈具有先进后出(FILO)的特点,而队列为先进先出(FIFO),题目为利用两个栈实现队列,因此其中一个栈存储队列,另一个栈作为中转,在队列每次push新元素的时候,将第一个栈中的元素全都推进中转栈,并将新元素放置在栈底,最终将中转栈中的元素回退,实现队列。 /** * 用两个...原创 2019-03-05 19:05:05 · 139 阅读 · 0 评论 -
剑指offer-旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0 解题思路: 1、直接遍历整个数组中最小的数返回。 2、遍历整个数组,当出现前一个数大于后面的数时,即出现最...转载 2019-03-05 19:20:23 · 125 阅读 · 0 评论 -
剑指offer-空格替换
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路: 利用StringBuilder 中的indexOf() 以及 replace()方法,将字符串中的空格进行替换,由于indexOf()方法匹配不到时返回-1,以此作为条件终止循环。 public static...转载 2019-03-04 14:50:26 · 102 阅读 · 0 评论 -
剑指offer-从头到尾打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路: 原题中给出了一个名为ListNode的内置类,本来想使用Collections内置的reverse方法,顺序获取链表的值后反转,提交后发现不能使用,因此另外定义了一个ArrayList进行反转。 public class ListNodeReverse { public ArrayList<I...原创 2019-03-04 18:28:50 · 207 阅读 · 0 评论