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;
    }
}
相关推荐
充值修改昵称2 分钟前
数据结构基础:二叉树高效数据结构的奥秘
数据结构·python·算法
独自归家的兔3 分钟前
Java反射之根:Class类生成机制深度剖析与最佳实践
java·开发语言
悟能不能悟17 分钟前
Gson bean getxxx,怎么才能返回给前端
java·前端
Apex Predator24 分钟前
本地库导入到nexus
java·服务器·前端
仍然.28 分钟前
Java---反射、枚举、lambda表达式 和 泛型进阶
java·开发语言
啊阿狸不会拉杆39 分钟前
《机器学习》第四章-无监督学习
人工智能·学习·算法·机器学习·计算机视觉
小北方城市网43 分钟前
JVM 调优实战指南:从问题排查到参数优化
java·spring boot·python·rabbitmq·java-rabbitmq·数据库架构
Elieal43 分钟前
Java项目密码加密实现详解
java·开发语言
Java程序员威哥1 小时前
用Java玩转机器学习:协同过滤算法实战(比Python快3倍的工程实现)
java·开发语言·后端·python·算法·spring·机器学习
Lips6111 小时前
第六章 支持向量机
算法·机器学习·支持向量机