ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

DeepSeek LeetCode 50. Pow(x, n) Java实现

2026/9/4 6:15:08 拓冰建站 浏览量
DeepSeek    LeetCode 50. Pow(x, n) Java实现 以下是 LeetCode 50. Pow(x, n) 的 Java 实现采用 快速幂二分幂 算法。思路快速幂通过将指数不断二分把时间复杂度从 O(n) 降到 O(log n)。· 当指数为偶数时x^n (x2)(n/2)· 当指数为奇数时x^n x * (x2)(n/2)另外需要注意· n 可能为负数此时计算 1 / x^(-n)。· n 可能为 Integer.MIN_VALUE直接取负会溢出因此用 long 类型存储指数。代码迭代写法classSolution{publicdoublemyPow(doublex,intn){longNn;// 用 long 防止溢出if(N0){x1/x;N-N;}doubleres1.0;while(N0){if((N1)1){// 当前位为 1累乘res*x;}x*x;// 每次平方N1;// 指数右移一位}returnres;}}复杂度分析· 时间复杂度O(log n)循环次数为指数 n 的二进制位数。· 空间复杂度O(1)只使用了常数个变量。说明· 使用位运算 (N 1) 判断奇偶N 1 代替除以 2效率更高。· 迭代写法避免了递归栈开销也避免了递归中可能出现的栈溢出问题。