力扣面试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;
	}
}
相关推荐
j_xxx404_1 分钟前
LeetCode模拟算法精解I:替换问号,提莫攻击与Z字形变换
开发语言·数据结构·c++·算法·leetcode
superkcl202213 分钟前
C++初始化 和 赋值
开发语言·c++·算法
Warren9815 分钟前
Spring Boot + JUnit5 + Allure 测试报告完整指南
java·spring boot·后端·面试·单元测试·集成测试·模块测试
前端百草阁22 分钟前
Vue3 Diff 算法详解
前端·javascript·vue.js·算法·前端框架
weixin_4219226925 分钟前
C++中的状态模式高级应用
开发语言·c++·算法
不想看见40427 分钟前
Max Chunks To Make Sorted数组--力扣101算法题解笔记
数据结构·算法
AI科技星28 分钟前
从v=c螺旋时空公理出发的引力与电磁常数大统一
c语言·开发语言·人工智能·线性代数·算法·矩阵·数据挖掘
TsukasaNZ30 分钟前
代码性能剖析工具
开发语言·c++·算法
小菜鸡桃蛋狗32 分钟前
C++——基础概念
算法
dapeng287034 分钟前
C++中的观察者模式变体
开发语言·c++·算法