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;
    }
}
相关推荐
Chan168 小时前
【 微服务SpringCloud | 方案设计 】
java·spring boot·微服务·云原生·架构·intellij-idea
漫随流水8 小时前
leetcode算法(513.找树左下角的值)
数据结构·算法·leetcode·二叉树
浪扼飞舟8 小时前
C#(多线程和同步异步)
java·开发语言
hanqunfeng8 小时前
(三十三)Redisson 实战
java·spring boot·后端
2301_780669868 小时前
字符集及其编码、解码操作、IO流分类
java·开发语言
计算机毕设指导69 小时前
基于微信小程序的运动场馆服务系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
全栈游侠9 小时前
数据结构 -数组
数据结构
冰暮流星9 小时前
javascript的switch语句介绍
java·前端·javascript
有梦想的攻城狮9 小时前
Java中的Double类型的存在精度丢失详解
java·开发语言·bigdecimal·double
囊中之锥.9 小时前
机器学习算法详解:DBSCAN 聚类原理、实现流程与优缺点分析
算法·机器学习·聚类