Loading...
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0思路思路一:二分查找,根据最小值与rotateArray[0]和rotateArray[size-1]的关系进行二分...
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路思路一: 递归计算节点...
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路队列的特点:先进先出,先进的元素在首部;栈的特点:先进后出,先进的元素在尾部。所以我们需要实现的便是如何将入栈的元素顺序颠倒以下,将栈尾变道栈首。题目给的两个栈,因此可以用栈stack1负责压入元素,另外一个栈stack2负责在pop时,将stack1颠倒(也就是把stack1中元素全部弹除压入s...
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,...
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路思路一: 遍历链表,并将链表每个节点值按遍历顺序压入ArrayList,最后翻转ArrayList,时间复杂度$O(n)$思路二: 遍历链表,并将链表每个节点值依次也入栈中,最后遍历栈中元素,按出栈顺序压入ArrayList