实现 pow(x, n) ,即计算 x 的 n 次幂函数。
/**
* @param {number} x
* @param {number} n
* @return {number}
*/
var myPow = function(x, n) {
return x ** n;
};
//Runtime: 76 ms
//递归思路
var myPow = function(x, n) {
if(!n) return 1;
if(n < 0) return 1 / myPow(x, -n);
if(n % 2){
return x * myPow(x, n-1);
}
return myPow(x*x, n/2);
};
//Runtime: 72 ms, faster than 100.00% of JavaScript online submissions for Pow(x, n).
//非递归,用位运算,最优解
var myPow = function(x, n) {
if (n < 0) {
n = -n;
x = 1 / x;
}
let res = 1;
while (n > 0) {
if (n % 2 === 1) {
res *= x;
--n;
}
x *= x;
n /= 2;
}
return res;
};
//Runtime: 72 ms
高效实现pow(x,n)函数
本文介绍三种实现pow(x,n)函数的方法:直接使用运算符、递归思想及最优解利用位运算。通过对比,展示不同算法的时间效率,最优解在72ms内完成,比100%在线提交的JavaScript pow(x,n)解决方案更快。
4510

被折叠的 条评论
为什么被折叠?



