leetcode50. Pow(x, n)
来源:互联网 发布:自适应网页源码 编辑:程序博客网 时间:2024/06/14 11:17
这道题是用brute force做出来的,时间复杂度是O(n) 分n次方的n是正数还是负数2个方面去讨论的.但是leetcode test case: x=0.00001
n=2147483647时,整个程序会超时 Time Limit Exceeded.
public class Solution { public double myPow(double x, int n) { if(n==0) return 1; double target = x; if(n>0) { for(int i=1;i<n;i++){ target = target*x; } } else if(n<0){ for(int i=1;i<-n;i++){ target = target*x; } target = 1/target; } return target; }}
这道题可以用递归来写,x的n次方可以写成x的n/2次方乘以x的n/2次方。代码如下
public class Solution { public double myPow(double x, int n) { if(n<0){ return 1/power(x,-n); } else{ return power(x,n); } } public double power(double x,int n){ if(n==1) return x; if(n==0) return 1; double v = power(x,n/2); if(n%2==0){ return v*v; } else{ return v*v*x; } }}
值得思考的是 递归方法的时间复杂度是多少呢?
0 0
- Leetcode50 Pow(x, n)
- Leetcode50 Pow(x, n)
- leetcode50 Pow(x, n)
- leetcode50. Pow(x, n)
- leetcode50. Pow(x, n)
- Leetcode50. Pow(x, n)
- LeetCode50 pow(x, n)
- 【LeetCode】LeetCode50 Pow(x, n)
- LeetCode50——Pow(x,n)
- leetcode50-Pow(x, n)(实现浮点数的幂运算)
- 剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
- Pow(x, n) / Super Pow
- LeetCode: Pow(x, n)
- LeetCode Pow(x,n)
- [Leetcode] Pow(x, n)
- LeetCode: Pow(x, n)
- Leetcode: Pow(x,n)
- [LeetCode] Pow(x, n)
- HTML+CSS(1)
- 也说说MVC如何防盗链
- 一款游戏的背包数据非常规查找处理方法
- #勉励#一旦开始,就不轻易停下
- <!DOCTYPE html PUBLIC……>的组成解释
- leetcode50. Pow(x, n)
- Mac OS X下Maven的安装与配置
- [知识点滴]巧妙去掉HTML中Inline-Block元素之间的空白的4种技巧
- 编程语言 - 标识符
- 用with处理文件
- Leetcode140:Word Break II
- 小水怪微信爬虫(1):俄语;雅思;人工智能;旅游;搞笑
- 一个虐你千百遍的问题:“RPC好,还是RESTful好?”
- Error converting bytecode to dex