LCR 134. Pow(x, n)

解题思路:

分治 快速幂

Java中向下取整n/=2即可

需要结合下图理解,算法就是实现的该过程

java 复制代码
class Solution {
    public double myPow(double x, int n) {
        if(x == 0.0f) return 0.0d;
        long b = n;
        double res = 1.0;
        //例如:2^-5=(1/2)^5
        if(b < 0) {
            x = 1 / x;
            b = -b;
        }
        //分奇偶讨论,为奇数时要多乘一次x
        while(b > 0) {
            //&与运算,例如:5&1=(101&001)=001=1
            if((b & 1) == 1) res *= x;
            //x=x^2
            x *= x;
            //指数地板除2(b/=2也可以)
            b >>= 1;
        }
        return res;
    }
}
相关推荐
LYFlied2 分钟前
LeetCode热题Top100:核心算法思想与前端实战套路
前端·算法·leetcode·面试·算法思想·算法套路·解题公式
coderxiaohan2 分钟前
【C++】红黑树的实现
数据结构·c++·算法
代码不停3 分钟前
JVM基础知识
java·jvm·java-ee
白露与泡影4 分钟前
60亿消息表如何分库分表?
java·开发语言·面试
纵有疾風起5 分钟前
【C++—STL】哈希表底层封装与unorderedset/unorderedmap模拟实现
开发语言·数据结构·c++·stl·哈希算法·散列表
FAFU_kyp5 分钟前
银行技术岗位招聘面试题准备
java·spring boot·spring
AganTee5 分钟前
儿童编程学什么内容?怎么学?(附3个实用工具)
算法·青少年编程·推荐算法
coderxiaohan6 分钟前
【C++】封装红黑树实现mymap和myset
数据结构·c++·算法
合方圆~小文6 分钟前
变焦摄像头画面时间戳同步方案
数据结构·数据库
zhangyifang_0099 分钟前
Spring中的BeanDefinition
java·后端·spring