LeetCode—剑指Offer:数值的整数次方(二分)

数值的整数次方(中等)

2020年8月17日

题目来源:力扣

LeetCode—剑指Offer:数值的整数次方(二分)_第1张图片

解题
尝试使用暴力法进行求解,但是超时了,无思路就参照大佬的题解
真是茅塞顿开,快速幂这种二分法的运用,能用位运算就用,速度会更快

class Solution {
    public double myPow(double x, int n) {
        if(x==0) return 0;
        long temp_n=n;
        double res=1.0;
        if(temp_n<0){
            x=1/x;
            temp_n=-temp_n;
        }
        while(temp_n!=0){
            if((temp_n & 1)==1){
                res*=x;
            }
            x*=x;
            temp_n>>=1;
        }
        return res;
    }
}

LeetCode—剑指Offer:数值的整数次方(二分)_第2张图片

你可能感兴趣的:(LeetCode)