Pow(x, n)
题目链接: https://leetcode.cn/problems/powx-n
解题思路:
判断 是否等于 ,等于 直接返回
如果 小于 ,将 取倒数, 取相反数
如果 是偶数,递归调用
myPow
函数,传入 的平方和 除以 的结果如果 是奇数,返回 乘以递归调用
myPow
函数,传入 的平方和 除以 的结果
func myPow(x float64, n int) float64 {
// 如果 n 等于 0,返回 1
if n == 0 {
return 1
}
// 如果 n 小于 0,将 x 取倒数,n 取相反数
if n < 0 {
x = 1 / x
n = -n
}
// 如果 n 是偶数,递归调用 myPow 函数,传入 x 的平方和 n 除以 2 的结果
if n%2 == 0 {
return myPow(x*x, n/2)
}
// 如果 n 是奇数,返回 x 乘以递归调用 myPow 函数,传入 x 的平方和 n 除以 2 的结果
return x * myPow(x*x, n/2)
}
复杂度分析
时间复杂度: 时间复杂度是
空间复杂度: 空间复杂度是
最后更新于
这有帮助吗?