public int climbStairs(int n) {
double sqrt5=Math.sqrt(5);
double fibn=Math.pow((1+sqrt5)/2,n+1)-Math.pow((1-sqrt5)/2,n+1);
return (int)(fibn/sqrt5);
}
複雜度分析
-
時間複雜度:O(log(n))O(log(n)),powpow 方法將會用去 log(n)log(n) 的時間。
-
空間複雜度:O(1)O(1),使用常量級空間。