力扣面试150 Pow(x, n) 快速幂 负指数

Problem: 50. Pow(x, n)

解题方法

👨‍🏫 参考题解

复杂度

时间复杂度: O ( l o g 2 n ) O(log_{2}n) O(log2n)

空间复杂度: O ( 1 ) O(1) O(1)

Code

Java 复制代码
class Solution {
	public double myPow(double x, int n)
	{
		if (x == 0.0f)
			return 0.0d;
		long b = n;
		double res = 1.0;
		if (b < 0)// 指数是 负数
		{
			x = 1 / x;
			b = Math.abs(b);
		}
		while (b > 0)// 经典快速幂
		{
			if ((b & 1) == 1)
				res *= x;
			x *= x;
			b >>= 1;
		}
		return res;
	}
}
相关推荐
青山是哪个青山4 分钟前
LeetCode 123:买卖股票的最佳时机 III
算法
Zane199428 分钟前
写对二分查找有多难?Java集合框架的作者也曾栽在一行mid计算上
算法
Lokey86828 分钟前
transformer结构
算法
罗斯83935 分钟前
EMBER恶意软件基准数据集
人工智能·算法·安全·网络安全
0+1111 小时前
算法 --二分查找
c++·算法·leetcode
圣保罗的大教堂1 小时前
leetcode 1674. 使数组互补的最少操作次数 中等
leetcode
一条溺水的鱼1 小时前
一次讲透 JS 闭包 —— 概念、原理、应用和内存泄漏
javascript·面试
Omics Pro1 小时前
新型条件传输模型!虚拟细胞扰动预测
数据库·人工智能·算法·机器学习·自然语言处理
程序员清风1 小时前
聊聊我的AI学习方法与思考!
java·后端·面试
黄金龙PLUS1 小时前
5个800比特大状态置换算法的设计与分析
算法·网络安全·密码学·哈希算法·同态加密