首页 > 代码库 > [leetcode]Pow(x, n)
[leetcode]Pow(x, n)
Pow(x, n)
Implement pow(x, n).
算法思路:
二分法,没什么好说的,小心点就行;这个题时间比较苛刻。
return pow(x,n >> 1) * pow(x,n >> 1) 是过不去的,因此把pow(x,n / 2)求出来先。其实时间复杂度而言,是一样的。
【注意】:n的取值范围;n = Integer.MIN_VALUE时,-n是会越界的,因此我用了long进行了包装。
代码如下:
1 public class Solution { 2 public double pow(double x, int n) { 3 return pow(x,(long)n); 4 } 5 public double pow(double x,long n){ 6 if(x == 0 || x == 1) return x; 7 if(n == 0) return 1; 8 if(n == 1) return x; 9 if(n < 0) return 1 / pow(x,-n);10 double tem = pow(x,n >> 1);11 if((n & 1 )== 0){12 return tem * tem; 13 }else{14 return tem * tem * x; 15 }16 }17 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。