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)
领悟:对于特定问题,对半处理较大的数据量,可以节省内存