对半处理思想

my code :

double myPow(double x, int n){
    if (0 == x || 1 == x){
        return 1;
    }
   
    while(n){
        x *= myPow(x);
        --n;
    }return x;
}
我自己也不知道这一坨是什么
 
correct code :

double myPow(double x, int n){
if(n == 0 || x == 1){
return 1;
}
if(n < 0){
return 1/(x*myPow(x,-(n+1)));
}
if(n % 2 == 0){
return myPow(x*x,n/2);
}
else{
return x*myPow(x*x,(n - 1)/2);
}
}

作者:miraitowa
链接:https://leetcode.cn/problems/powx-n/solutions/2455100/50-powx-n-by-strange-elbakyanukd-ha70/
来源:力扣(LeetCode)
领悟:对于特定问题,对半处理较大的数据量,可以节省内存

posted @ 2023-10-25 13:22  2B青年~  阅读(11)  评论(0)    收藏  举报