文章加密

;

2019年7月1日 星期一

排列组合,尾递归优化动态规划

https://blog.csdn.net/u013309870/article/details/75193592   动态规划
其中C++例子看不太懂,看下面這個聯結有JS的https://segmentfault.com/a/1190000015944750
應該還要搜尋尾递归

不同排序也要算一种,1有x种,2有y种,((x+y)!) / (x!y!)


leecode題目
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。


神人解答
var climbStairs = function(n) {

 if(n===0||n===1){
        return 1
     }else if(n===2){
       return 2
    }else{
        let x = 1,
            y = 2,
            result = 0;
        for(let i=3;i<=n;i++){
           result = x + y;
           x = y;
           y = result;
         
      }
        return result
    }
};
→研究發現幾種的規律是1,2,3,5,8,13,...也就是斐波那契數列,所以懷疑是神人先研究了規律,或是演算法極好,早就有這個邏輯的敏感度,所以就從這規則寫出了該程式。




斐波那契數列  01123581321345589144233,即第一項+第二項=第三項,第二項+第三項=第四項...   ↓
https://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97



沒有留言:

張貼留言