思路:每一次计算,我们需要存储 x ^(2/n)的结果;通过这样降低时间复杂度;事项logN的时间复杂度
class Solution {
public:
double fastPow(double x, long n) {
if (n == 0) {
return 1.0;
}
double half = fastPow(x, n / 2);
if (n % 2 == 0) {
return half * half;
} else {
return half * half * x;
}
}
double myPow(double x, int n) {
long N = n;
if (N < 0) {
x = 1 / x;
N = -N;
}
return fastPow(x, N);
}
};
本文深入探讨了快速幂运算算法的实现原理,通过递归方式计算x的n次方,利用分治策略将时间复杂度降至logN级别,显著提高了计算效率。特别介绍了如何存储中间结果x^(2/n),避免重复计算,进一步优化算法性能。
&spm=1001.2101.3001.5002&articleId=105492772&d=1&t=3&u=59fc1a4e900f4f2fb7a21572dc2463e7)
5690

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



