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;
    }
}
相关推荐
华农第一蒟蒻4 分钟前
一次服务器CPU飙升的排查与解决
java·运维·服务器·spring boot·arthas
m0_7482299912 分钟前
帝国CMS后台搭建全攻略
java·c语言·开发语言·学习
踩坑记录22 分钟前
leetcode hot100 环形链表 easy 快慢指针
leetcode·链表
We་ct23 分钟前
LeetCode 15. 三数之和:排序+双指针解法全解析
前端·算法·leetcode·typescript
挽天java26 分钟前
数据结构习题--寻找旋转排序数组中的最小值
数据结构·算法·排序算法
码农娟34 分钟前
Hutool XML工具-XmlUtil的使用
xml·java
你怎么知道我是队长36 分钟前
C语言---排序算法4---希尔排序法
c语言·算法·排序算法
草青工作室41 分钟前
java-FreeMarker3.4自定义异常处理
java·前端·python
iAkuya42 分钟前
(leetcode)力扣100 54实现Trie树
算法·leetcode·c#
java1234_小锋1 小时前
Java中读写锁的应用场景是什么?
java·开发语言