摘要: 七、查找和排序 1. 旋转数组的最小数字 题目描述: ​ 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大 阅读全文
posted @ 2020-03-13 20:48 Java程序员的进阶之路 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 五、栈和队列 1. 用两个栈来实现队列 题目描述: ​ 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 入队:stack1入栈。 出队:若stack2非空,则stack2弹出栈顶元素;若stack2为空,且stack1非空,则将stack1中的元素全部压 阅读全文
posted @ 2020-03-13 18:51 Java程序员的进阶之路 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 三、链表 1. 从尾到头打印链表 题目描述: ​ 输入一个不带头结点的单链表,按链表从尾到头的顺序返回一个ArrayList数组。 思路: ​ 莽。时间复杂度O(n),空间复杂度O(n)。 代码: /** * struct ListNode { * int val; * struct ListNod 阅读全文
posted @ 2020-03-13 09:11 Java程序员的进阶之路 阅读(80) 评论(0) 推荐(0) 编辑