Leetcode 50. Pow(x, n)

文章目录

  • 题目
  • 代码(9.19 首刷看解析)

题目

Leetcode 50. Pow(x, n)_第1张图片
Leetcode 50. Pow(x, n)

代码(9.19 首刷看解析)

快速幂

class Solution {
public:
    double myPow(double x, int n) {
        if(n == 0)
            return 1;
        if(n == 1)
            return x;
        if(n == INT_MIN) {  // 避免-n整形溢出
            return myPow(1/x, -(n+1))/x;
        }
        if(n < 0) {
            return myPow(1/x, -n);
        }
        if(n % 2) {
            return (x*myPow(x, n-1));
        } else {
            double sub = myPow(x, n/2);
            return (sub*sub);
        }
    }
};

你可能感兴趣的:(Leetcode专栏,leetcode,算法,职场和发展)