力扣面试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;
	}
}
相关推荐
一个不知名程序员www3 小时前
算法学习入门 --- 哈希表和unordered_map、unordered_set(C++)
c++·算法
yanyu-yaya3 小时前
前端面试题
前端·面试·前端框架
Sarvartha3 小时前
C++ STL 栈的便捷使用
c++·算法
夏鹏今天学习了吗4 小时前
【LeetCode热题100(92/100)】多数元素
算法·leetcode·职场和发展
飞Link4 小时前
深度解析 MSER 最大稳定极值区域算法
人工智能·opencv·算法·计算机视觉
bubiyoushang8884 小时前
基于CLEAN算法的杂波抑制Matlab仿真实现
数据结构·算法·matlab
2401_894828125 小时前
从原理到实战:随机森林算法全解析(附 Python 完整代码)
开发语言·python·算法·随机森林
Remember_9935 小时前
【LeetCode精选算法】前缀和专题二
算法·哈希算法·散列表
源代码•宸6 小时前
Leetcode—509. 斐波那契数【简单】
经验分享·算法·leetcode·面试·golang·记忆化搜索·动规
博大世界6 小时前
matlab结构体数组定义
数据结构·算法