20220420,

|
```javascript /**

  • @param {number} n
  • @return {number} */ // 11:13 -> var fib = function(n) { let mod = 1000000007; if (n < 2) return n; // 这句忘写了,n=1的时候会返回0 let p = 0; let q = 1; let r = 0; // for (let i = 2; i <= n; n++) { // bug:死循环了 for (let i = 2; i <= n; i++) { r = (p + q) % mod; p = q; q = r; } return r; }; ``` | | —- |

20220417,16min

|
```javascript /**

  • @param {number} n
  • @return {number} */ // 19:43 -> 19:59 // 区间动态规划 var fib = function(n) { if (n < 2) return n; let p = 0; let q = 1; let r = 0; const mod = 1000000007; for (let i = 2; i <= n; i++) { // const temp = q; // bug // q = p; // r = (p + temp) % mod; const temp = p; p = q; // r = temp + q; q = r % mod; // bug:如果先把原来的值算出来,再余mod就会出错 r = (temp + q ) % mod; q = r; } return r; };

// var fib = function(n) { // const MOD = 1000000007; // if (n < 2) { // return n; // } // let p = 0, q = 0, r = 1; // for (let i = 2; i <= n; ++i) { // p = q; // q = r; // r = (p + q) % MOD; // } // return r; // };

  1. **知识点**<br />- i = 2时, p = 0; q = 0; r = 1; 就不需要使用temp<br />- r = temp + q; q = r % mod; q = (temp + q) % mod得到的值不一样<br /> |
  2. | --- |
  3. <a name="M09SS"></a>
  4. ## 20220416,8min
  5. | <br />```javascript
  6. /**
  7. * @param {number} n
  8. * @return {number}
  9. */
  10. // 18:04 -> 18:12
  11. var fib = function(n) {
  12. const mod = 1000000007;
  13. // if (n <=2) return n; // bug
  14. if (n < 2) return n;
  15. let p = 0; q = 1;
  16. for (let i = 2; i <= n; i++) {
  17. let temp = p;
  18. p = q;
  19. // q = temp + q // bug:每次都给都要取模后的结果,所以不能把取模放return中,而应该放这里
  20. q = (temp + q) % mod
  21. }
  22. // return q % mod;
  23. return q
  24. };

执行用时:52 ms, 在所有 JavaScript 提交中击败了95.50%的用户
内存消耗:40.9 MB, 在所有 JavaScript 提交中击败了43.78%的用户
通过测试用例:51 / 51 | | —- |

20220415,不通过

|
```javascript /**

  • @param {number} n
  • @return {number} */ // 22:05 -> 22:18 var fib = function(n) { // let x = 1, y = 0; if (n === 0) { return 0; } if (n === 1) { return 1; } for (let i = 2; i <= n; i++) { return fib(i-1) + fib(i-2); } }; ``` | | —- |