2021年5月7日,阴天,不时下点下雨,真是个学习的好日子。
    今天是开始教练开始带着学leetcode的第二天。
    今天学习斐波那契数列,难度简单,请听题:
    WechatIMG430.png
    请答题:

    1. // f(n) = f(n-1)+f(n-2)
    2. // 0 1 1 2 3 5 8
    3. // 递归的普通写法
    4. function fib(n) {
    5. if (n < 2) {
    6. return n
    7. }
    8. return fib(n - 1) + fib(n - 2)
    9. }
    10. // 缓存前面的值。
    11. function fib(n, memory = []) {
    12. if (n < 2) {
    13. return n
    14. }
    15. if (!memory[n]) {
    16. return fib(n - 1, memory) + fib(n - 2, memory)
    17. }
    18. return memory[n]
    19. }
    20. // 动态规划
    21. function fib(n) {
    22. if (n < 2) {
    23. return n;
    24. }
    25. let i = 1;
    26. let pre = 0;
    27. let current = 1;
    28. let result = 0;
    29. while (i++ < n) {
    30. result = (pre + current) % 1000000007;
    31. pre = current;
    32. current = result;
    33. }
    34. return result;
    35. }

    总结:
    WechatIMG523.jpeg