其中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,...也就是斐波那契數列,所以懷疑是神人先研究了規律,或是演算法極好,早就有這個邏輯的敏感度,所以就從這規則寫出了該程式。
斐波那契數列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,即第一項+第二項=第三項,第二項+第三項=第四項... ↓
https://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97
沒有留言:
張貼留言