Careercup - Microsoft面试题 - 5673934611546112
2014-05-10 23:26
原题:
- what is the best,worst and average case complexity for fibonacci no.s ..explain?
题目:计算斐波那契数的最好、最坏、平均复杂度是多少?
解法:计算斐波那契数倒是有好多方法,不过平均复杂度是怎么个说法?我写了三种解法:1. 白痴级的二路递归,复杂度是指数级的。2. 普通的递推算法,复杂度是线性的。3. 矩阵陈法,用快速幂可以达到对数级的时间。
代码:
- // http://www.careercup.com/question?id=5673934611546112
- #include <iostream>
- using namespace std;
- int fib1(int n)
- {
- if (n < ) {
- return ;
- }
- if (n == || n == ) {
- return ;
- }
- return fib1(n - ) + fib1(n - );
- }
- int fib2(int n)
- {
- if (n < ) {
- return ;
- }
- if (n == || n == ) {
- return ;
- }
- int f1, f2, f3;
- f1 = f2 = ;
- for (int i = ; i <= n; ++i) {
- f3 = f1 + f2;
- f1 = f2;
- f2 = f3;
- }
- return f3;
- }
- void matrixMultiply(int a[][], int b[][], int c[][])
- {
- int i, j, k;
- for (i = ; i < ; ++i) {
- for (j = ; j < ; ++j) {
- c[i][j] = ;
- for (k = ; k < ; ++k) {
- c[i][j] += a[i][k] * b[k][j];
- }
- }
- }
- }
- void matrixPower(int a[][], int b[][], int n)
- {
- if (n < ) {
- b[][] = b[][] = ;
- b[][] = b[][] = ;
- return;
- }
- if (n == ) {
- b[][] = a[][];
- b[][] = a[][];
- b[][] = a[][];
- b[][] = a[][];
- return;
- }
- int p[][];
- matrixPower(a, p, n / );
- if (n % ) {
- int c[][];
- matrixMultiply(p, p, c);
- matrixMultiply(a, c, b);
- } else {
- matrixMultiply(p, p, b);
- }
- }
- int fib3(int n)
- {
- if (n < ) {
- return ;
- }
- if (n == || n == ) {
- return ;
- }
- int a[][] = {
- {, },
- {, }
- };
- int b[][];
- matrixPower(a, b, n - );
- return b[][] + b[][];
- }
- int main()
- {
- int n;
- while (cin >> n) {
- cout << fib3(n) << endl;
- }
- return ;
- }
Careercup - Microsoft面试题 - 5673934611546112的更多相关文章
- Careercup - Microsoft面试题 - 6314866323226624
2014-05-11 05:29 题目链接 原题: Design remote controller for me. 题目:设计一个遥控器. 解法:遥控什么?什么遥控?传统的红外线信号吗?我只能随便说 ...
- Careercup - Microsoft面试题 - 6366101810184192
2014-05-10 22:30 题目链接 原题: Design database locks to allow r/w concurrency and data consistency. 题目:设计 ...
- Careercup - Microsoft面试题 - 24308662
2014-05-12 07:31 题目链接 原题: I have heard this question many times in microsoft interviews. Given two a ...
- Careercup - Microsoft面试题 - 5700293077499904
2014-05-12 00:02 题目链接 原题: For a given map (ie Bing map) given longitude/latitude/ how would you desi ...
- Careercup - Microsoft面试题 - 5204967652589568
2014-05-11 23:57 题目链接 原题: identical balls. one ball measurements ........ dead easy. 题目:9个看起来一样的球,其中 ...
- Careercup - Microsoft面试题 - 5175246478901248
2014-05-11 23:52 题目链接 原题: design an alarm clock for a deaf person. 题目:为聋人设计闹钟? 解法:聋人听不见,那么闪光.震动都可行.睡 ...
- Careercup - Microsoft面试题 - 5718181884723200
2014-05-11 05:55 题目链接 原题: difference between thread and process. 题目:请描述进程和线程的区别. 解法:操作系统理论题.标准答案在恐龙书 ...
- Careercup - Microsoft面试题 - 5173689888800768
2014-05-11 05:21 题目链接 原题: Complexity of a function: int func_fibonacci ( int n) { ) { return n; } el ...
- Careercup - Microsoft面试题 - 6282862240202752
2014-05-11 03:56 题目链接 原题: Given an integer array. Perform circular right shift by n. Give the best s ...
随机推荐
- 一步一图:从SQLSERVER2005中导出insert语句
1.为什么要导出insert语句,我电脑装的是SQL Server Express免费版的,服务器上装的是正式版,在服务器上备份的数据库文件在本机上还原的时候 因为版本不一样,总是不成功.如果能直接使 ...
- php中实现17种正则表达式
php中实现17种正则表达式 该教程来自:php教程网:http://php.662p.com "^\d+[ DISCUZ_CODE_1 ]quot; //非负整数(正整数 + 0) &qu ...
- [转]CentOS开机启动脚本
转载自http://www.2cto.com/os/201306/220559.html 我的一个Centos开机自启动脚本的制作 一.切换到/etc/init.d/ 二.制作sh脚本 v ...
- 为什么swing不适合做桌面软件
http://www.zhihu.com/question/19608871 我最近几年做的项目清一色的都是HTML5了,这篇<基于HTML5的电信网管3D机房监控应用>供参考,HTML5 ...
- j-query j-query
jQuery 1.安装:http://jquery.com/download/登陆这个jQuery下载2在.html文件的<head>标签中导入3 语法$(selector).acti ...
- centos6.7下网络设置
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0"BOOTPROTO="static" # ...
- C++判断五位以内的对称素数
题目内容:判断一个数是否为对称且不大于五位数的素数. 输入描述:输入数据含有不多于50个的正整数n(0<n<232). 输出描述:对于每个n,如果该数是不大于五位数的对称素数,则输出“Ye ...
- Java打印温度转换表
按5度的增量打印出一个从摄氏温度到华氏温度的转换表.转换公式为h=c*9/5+32,其中h为华氏温度,c为摄氏温度. 主要是“按5度的增量”这个要求,一般摄氏温度的起始分别为0度和40度,所以循环可以 ...
- QQl聊天消息
Activity: package com.zzw.qqchat; import java.util.ArrayList; import java.util.HashMap; import andro ...
- ASP.NET Core文章汇总
现有Asp.Net Core 文章资料,2016 3-20月汇总如下 ASP.NET Core 1.0 与 .NET Core 1.0 基础概述 http://www.cnblogs.com/Irvi ...