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;
    }
}
相关推荐
灵感__idea12 小时前
Hello 算法:“走一步看一步”的智慧
前端·javascript·算法
lwf00616414 小时前
导数学习日记
学习·算法·机器学习
yaoxin52112314 小时前
390. Java IO API - WatchDir 示例
java·前端·python
头发够用的程序员15 小时前
从滑动窗口到矩阵运算:img2col算法基本原理
人工智能·算法·yolo·性能优化·矩阵·边缘计算·jetson
武帝为此15 小时前
【数据清洗缺失值处理】
python·算法·数学建模
Halo_tjn16 小时前
Java 基于字符串相关知识点
java·开发语言·算法
梦想的颜色16 小时前
java 利用redis来限制用户频繁点击
java·开发语言
念越16 小时前
算法每日一题 Day08|双指针法解决三数之和
算法·力扣
黎阳之光16 小时前
黎阳之光透明管理:视频孪生重构智慧仓储新范式
人工智能·算法·安全·重构·数字孪生
6Hzlia17 小时前
【Hot 100 刷题计划】 LeetCode 199. 二叉树的右视图 | C++ DFS 逆序遍历
c++·leetcode·深度优先