zoukankan      html  css  js  c++  java
  • 计算数组{1,1,2,3,5,8.......} 第30位值 ,斐波那契数列-常见的面试题,快速解法

    下面第一个结果,通过数组得到的,第二个是普通递归得到的160+万次,第三个是“新解法”(只针对这个问题),166万次和29次,效率自己想。。。

    公司面试出这道题,考得就是递归的运用,数组方法,大家知道就行,面试写的时候还是得用递归

     1 #region 数组方式实现
     2         /// <summary>
     3         /// 数组方式实现
     4         /// </summary>
     5         /// <param name="num"></param>
     6         /// <returns></returns>
     7         public static int ArrayMath(int num = 30)
     8         {
     9             if (num <= 2)
    10             {
    11                 return 1;
    12             }
    13             else
    14             {
    15                 int[] array = new int[num];
    16                 array[0] = 1;
    17                 array[1] = 1;
    18                 for (var i = 2; i < num; i++)
    19                 {
    20                     array[i] = array[i - 1] + array[i - 2];
    21                 }
    22                 return array[num - 1];
    23             }
    24         }
    25         #endregion
    数组方式实现
    #region 常规递归方式实现
            public static int DiGuiMath(int num = 30)
            {
                ++numberDiGuiMath;
                if (num <= 2)
                {
                    return 1;
                }
                else
                {
                    return DiGuiMath(num - 1) + DiGuiMath(num - 2);
                }
            }
    
            #endregion
    常规方式实现
    #region 超快递归
            public static int DiGuiMathFast(int num = 30,int head = 1, int end = 1)
            {
                ++numberDiGuiMathFast;
                if (num <= 2)
                {
                    return end;
                }
                else
                {
                    return DiGuiMathFast( num - 1,end, head + end);
                }
    
            }
            #endregion
    新递归
  • 相关阅读:
    HashMap 常问的 9 个问题
    P1855 榨取kkksc03
    Codeforces Round #697 (Div. 3) A. Odd Divisor
    P1474 [USACO2.3]Money System / [USACO07OCT]Cow Cash G
    Codeforces Round #704 (Div. 2) D. Genius's Gambit
    P2800 又上锁妖塔
    P2066 机器分配
    P3399 丝绸之路
    P1351 [NOIP2014 提高组] 联合权值
    P4290 [HAOI2008]玩具取名
  • 原文地址:https://www.cnblogs.com/shacoli/p/8524539.html
Copyright © 2011-2022 走看看