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 分钟前
EasyExcel中AnalysisEventListener<T>抽象类的方法执行顺序
java
handler013 分钟前
算法:查并集
开发语言·数据结构·c++·笔记·学习·算法·c
plus4s4 分钟前
3月19日(进阶10)
算法
雨落在了我的手上5 分钟前
C语言之数据结构初见篇(5):单链表的介绍(1)
c语言·开发语言·数据结构
Trouvaille ~8 分钟前
【优选算法篇】快速排序模型——从数组划分到快速选择
算法·leetcode·青少年编程·面试·蓝桥杯·快速排序·基础入门
Wect8 分钟前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·算法·typescript
悟空码字11 分钟前
别再让你的SpringBoot包"虚胖"了!这份瘦身攻略请收好
java·spring boot·后端
szm022513 分钟前
操作系统-
java·linux·服务器
圣保罗的大教堂15 分钟前
leetcode 3212. 统计 X 和 Y 频数相等的子矩阵数量 中等
leetcode
哆啦A梦158818 分钟前
java项目在后端做跨域配置
java·vue3