今天面试有关斐波那契函数 java 实现
2011-04-08 23:35
281 查看
今天很高兴被网易通知去参加面试,下午四点来到清华科技园,满怀激动的心情直奔网易的网站部,一个给我打了三次电话的小眉眉接待的我,呵呵,随后很热情给我一份笔试题,我去,竟然有6页,还规定我在一个小时内做完。在我慌慌张张的做了一个小时后,小眉眉让我拿着试题去会议室等待被面试,面试的过程很激烈,最后他问我为什么来网易,我是这样回答的“网易的口号是'网聚人的力量'我想我也是人吧,所以就来了”这句话把他逗乐了。整个过程自我感觉良好,但是他给我的答案是你答得的比不是很好,笔试题上斐波那契函数实现的算法效率太低,真是冤枉,一看那么多题,我想都没有想,就用了递归。晚上回来后用数组实现了一遍,果然效率差很多
源代码如下:
结果:
832040
数组实现用时:0
832040
递归实现用时:15
每次面试都能发现自己很多不足,再接再励!加油!
源代码如下:
package com.clz.aa; public class ReadAndCount { public static void main(String args[]) { long start=System.currentTimeMillis(); System.out.println(getSimpleFac(30)); long stop=System.currentTimeMillis(); System.out.println(stop - start); long start1=System.currentTimeMillis(); System.out.println(getCommFac(30)); long stop1=System.currentTimeMillis(); System.out.println(stop1 - start1); } public static int getSimpleFac(int n)//用数组实现 { int[] f = new int[n+1]; if(n == 0)f[0]=0; else if(n==1) { f[1]=1; } else if(n > 1) { f[0] = 0; f[1] = 1; for(int i = 2 ; i <= n; i++) { f[i] = f[i-1] + f[i-2]; } } return f ; } public static int getCommFac(int n)//用递归实现 { if(n==0) return 0; else if(n==1) return 1; return getCommFac(n-1)+getCommFac(n-2); } }
结果:
832040
数组实现用时:0
832040
递归实现用时:15
每次面试都能发现自己很多不足,再接再励!加油!
相关文章推荐
- 今天面试面试官叫我当场写a+aa+aaa+aaaa......java实现,现在完善一下。
- 【Java,面试】实现一个算法,确定一个字符串的所有字符是否全都不同
- 【LeetCode-面试算法经典-Java实现】【070-Set Matrix Zeroes(矩阵置零)】
- java面试中有关多线程的试题
- 【LeetCode-面试算法经典-Java实现】【138-Copy List with Random Pointer(拷贝有随机指针的单链表)】
- 【LeetCode-面试算法经典-Java实现】【201-Bitwise AND of Numbers Range(范围数位与结果)】
- 【LeetCode-面试算法经典-Java实现】【143-Copy List with Random Pointer(有随机指针的链表复制)】
- 【LeetCode-面试算法经典-Java实现】【035-Search Insert Position(搜索插入位置)】
- Java 记事本——今天添加了简单的插入时间和自动换行菜单的实现
- 【LeetCode-面试算法经典-Java实现】【155-Min Stack(最小栈)】
- 【LeetCode-面试算法经典-Java实现】【160-Intersection of Two Linked Lists(单链表的交集)】
- 【LeetCode-面试算法经典-Java实现】【145-Binary Tree Postorder Traversal(二叉树非递归后序遍历)】
- 今天开始学Java 链表的实现
- 【LeetCode-面试算法经典-Java实现】【079-Word Search(单词搜索)】
- 【LeetCode-面试算法经典-Java实现】【189-Rotate Array(旋转数组)】
- 【LeetCode-面试算法经典-Java实现】【105-Construct Binary Tree from Preorder and Inorder Traversal(构造二叉树)】
- 【LeetCode-面试算法经典-Java实现】【199-Binary Tree Right Side View(从右边看二叉树)】
- 今天用了一天实现了 java中的简易的堆
- 【LeetCode-面试算法经典-Java实现】【107-Binary Tree Level Order Traversal II(二叉树层序遍历II)】
- 【LeetCode-面试算法经典-Java实现】【027-Remove Element(删除数组中指定的元素)】