Pow(x, n) - Leetcode
2015-02-05 05:24
302 查看
Implement pow(x, n).
-----------
实现X^n,用课本的语言说就是分治法X^n = X^(n/2)*X^(n/2)*X^(n%2);
当n为偶数时,X^n
= X^(n/2)*X^(n/2) ,【n%2 ==0】;
当n为奇数时,X^n
= X^(n/2)*X^(n/2)*X,【n%2 ==1】
考虑一下n为负数的情况。
--------------
时间复杂度O(logn),空间复杂度O(1)
-----------
实现X^n,用课本的语言说就是分治法X^n = X^(n/2)*X^(n/2)*X^(n%2);
当n为偶数时,X^n
= X^(n/2)*X^(n/2) ,【n%2 ==0】;
当n为奇数时,X^n
= X^(n/2)*X^(n/2)*X,【n%2 ==1】
考虑一下n为负数的情况。
--------------
时间复杂度O(logn),空间复杂度O(1)
public class Solution { public double pow(double x, int n) { if(n<0) return 1.0/powHelper(x, -n); return powHelper(x,n); } public double powHelper(double x, int n){ if(n==0) return 1.0; double db=powHelper(x,n/2); if(n%2 == 0) return db*db; return db*db*x; } }
相关文章推荐
- Leetcode | Pow(x, n)
- 【leetcode】Pow(x, n)
- [LeetCode]pow(double x,int n)解题报告
- LeetCode 050 Pow(x, n)
- LeetCode Pow(x, n)
- LeetCode-50-Pow(x, n) 快速幂
- 【LeetCode练习题】Pow(x, n)
- [Leetcode ??] 50 Pow(x, n)
- [week 13][Leetcode][Divide and Conquer] Pow(x, n)
- [leetcode] Pow(x, n)
- [leetcode] Pow(x, n)
- Pow(x, n)--LeetCode
- [LeetCode]050-Pow(x,n)
- LeetCode | Pow(x, n)
- Leetcode习题:Pow(x, n)
- 【Leetcode】Pow(x,n)
- 【LeetCode with Python】 Pow(x, n)
- [LeetCode] Pow(x, n)
- Leetcode 50 Pow(x, n)
- LeetCode – Refresh – Pow(x, n)