![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
lizhenda1024
这个作者很懒,什么都没留下…
展开
-
青蛙跳台阶(斐波那契数列)
题目描述题目一:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。变态跳台阶:题目二:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。实现思路题目一:刚接触到这个题目是没有头绪的,观察了一段时间后发现,青蛙的跳法恰好符合Fibonacci sequen...原创 2019-12-30 18:07:36 · 526 阅读 · 0 评论 -
查找旋转数组中的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路看到题目的第一反应,肯定不能直接遍历数组,要寻找时间复杂度小于O(n)的方法。由于题目限定的是非递减...原创 2019-12-29 15:26:22 · 95 阅读 · 0 评论 -
用两个栈来实现一个队列,完成队列的Push和Pop操作。
栈的特点是先进后出,队列的特点是先进先出方法一假设现在有两个栈stack1和stack2如果我们用一个stack1来存储数据,用stack2负责把stack1的数据倒序(就是把数据存进stack2再存进stack1),这样就可以实现队列的特性,但是显然这种算法的时间复杂度和空间复杂度都很大。方法二我们可以用stack1来存储数据(进行push()操作),用stack2来取出数据(进行pop...原创 2019-12-28 23:25:01 · 208 阅读 · 0 评论 -
二维数组的查找
题目在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路既然数组是有规律的,传统的遍历肯定不是最优解。假设有这样一个二维数组,我们要找的数字11。...原创 2019-12-26 21:18:22 · 97 阅读 · 0 评论 -
Java中的基本数据类型
Java中有8中基本数据类型,分为三大类字符型:char(2字节)布尔型:boolean(1字节)数值型: 整型:byte、short、int、long(1、2、4、8)浮点型:float、double(4、8字节)注意String是引用类型,不是基本数据类型。整形的取值范围基本数据类型的取值范围与其本身的字节数有关1字节 = 8bitbyte:1字节,取值范围:-128(-27...原创 2019-12-25 21:47:38 · 111 阅读 · 0 评论 -
Java自动拆装箱
基本数据类型优点在Java中,当我们用new创建一个对象的时候,创建的对象是存在于堆中的,我们通过栈内存的引用来使用这些对象。所以,对象的使用比较消耗资源。但是Java提供了基本数据类型,基本数据类型不用new来创建,可直接定义,如:int a = 10; 而且,基本数据类型直接创建在栈中,所以我们操作基本数据类型的时候节省了很多资源。包装类型Java是一门面向对象的编程语言,但是Java提...原创 2019-12-25 21:43:19 · 88 阅读 · 0 评论 -
找出数组中重复数字
题目:在一个长度为n的数组里所有数字都在 0 ~ n-1 的范围内,找到数组中的重复数字。思路:看到问题之后的直接想法是将输入的数组排序,排序后找到重复数字是一件很容易的事情。可是排序一个长度为n的数组需要 O(nlogn) 的时间。为了降低时间复杂度,考虑用哈希表来解决。方案就是先创建一个和数组等长的哈希表,然后从头扫描数组,每扫描到一个数字,判断哈希表里面是否包含此数字。如果哈希表还没有...原创 2019-12-25 21:37:57 · 168 阅读 · 0 评论