-
每天一道剑指Offer:旋转数组的最小数字
题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如:数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路与代码: 直接按照题意扫描一遍数组,找到最小的值 分析:下意识想到的傻瓜办法,训练思维没啥 * 用,时间复杂度O(n) public int minNumb...…
-
每天一道剑指Offer:用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:栈:先进后出队列:先进先出-> 栈1用来存储入栈push()-> 栈2用来删除出栈pop()-> 只有栈2为空即所有数据全部调入栈1时可以push-> 只有栈1中的数据全部逆序的调入栈2时可以pop代码:public class Offer0005 { Stack<Integer> stack1 = new Stack<Intege...…
-
每天一道剑指Offer:从尾到头打印链表
题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路与代码:-> 从尾到头输出 -> 先进后出 -> 栈的结构两种方法: 递归的方法 有可能链表过长会导致栈溢出 public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> arrayList = ...…