C#版 - 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解

 

面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖)

 

提交网址: http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160

 

参与人数:7267  时间限制:1秒  空间限制:32768K

题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项 Fibonacci(int n)。

 

分析:

用递归会TLE,因为有不少地方进行了重复计算,改为循环即可解决(迭代法)...

另外为了避免输入非法值(比如负数),输入改为了unsigned int

\(fib(n)=\begin{cases} 1 &  n=0 \\
 1 & n=1 \\ 
 fib(n)+f(n-1) & n > 1  \ and \  n \in N \end{cases}\)

 

AC代码:

class Solution {
public:
    int Fibonacci(unsigned int n) {

        int arr[2]={0,1};
        if(n<2) return arr[n];
        
        long long fib_2preN=0;      // fib(0)
        long long fib_1preN=1;      // fib(1)
        long long fib_N=0;
       

你可能感兴趣的:(剑指offer解题报告,数据结构与算法的C++实现,Leetcode解题报告)