
剑指offer
七分好月
这个作者很懒,什么都没留下…
展开
-
剑指offer-08 跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路: 一级台阶 跳法 1 二级台阶 跳法 2 三级台阶 跳法 3 三级台阶的跳法可以这样思考,因为青蛙只能跳 1级 或者 2级,那如果青蛙想要跳上 三级台阶,最后一跳 可以选择 1级,那这时跳法就是2级台阶的跳法,同时我也可以选择 2级,那么这...原创 2020-03-23 16:50:57 · 247 阅读 · 0 评论 -
剑指offer-07 斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 斐波那契数列: fn = fn-1+fn-2; public class Solution { public int Fibonacci(int n) { int a=1,b=1,c=0; if(n==0)...原创 2020-03-23 16:36:35 · 151 阅读 · 0 评论 -
剑指offer-06 旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 思路:可以判定应该会有两种情况, 1. 如上例,最小的数字出现的规律是 a[i]>a[i+1]...原创 2020-03-23 16:23:26 · 116 阅读 · 0 评论 -
剑指offer-05 用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:首先明确队列是“先进先出”,栈是“先进后出”,使用两个栈模拟队列,那么可以使用一个栈A接收输入(即push),在pop操作中,将栈A的元素一一弹出,存入另一个栈B中,那么这时栈B的栈顶元素就是模拟队列的出队元素。 import java.util.Stack; public cla...原创 2020-03-23 11:18:29 · 125 阅读 · 0 评论 -
剑指offer-3 从尾到头打印链表
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路:使用栈存储输入链表,然后新建一个ArrayList,将栈中的元素一个个弹出至ArrayList /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int...原创 2020-03-22 16:50:25 · 99 阅读 · 0 评论 -
剑指offer_1 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 数组是从左到右、从上到下递增顺序的,那么可以想到的是最小数在array[0][0],最大数在array[row][clo]中,我们想要找到数组是否存在target,那么可以在选择左下角或者...原创 2020-03-01 20:35:01 · 123 阅读 · 0 评论