java - LeetCode 50.Pow(x, n) 计算x的n次幂函数(三种解法)(详细讲解,小白入手)

该博客详细介绍了LeetCode 50题的解决方案,针对计算x的n次幂函数,重点讨论了边界条件处理和三种解法,包括二分查找法、直接公式法以及暴力解法。对于负数和正数边界进行了特殊说明,并提供了转换和优化策略。
摘要由CSDN通过智能技术生成

LeetCode 50.Pow(x, n)

计算x的n次幂函数。

-100.0 < x < 100.0
n 是 32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1] 。 

解析:

  1. 负数的边界 -2^31 , 直接转正数会越界。
    正数边界2^31 − 1,负数转正2^31,越界。
    所以将n的类型int转为类型long。
  2. 次幂n是负数,首先要转正,将1/x,再-n转正。
  3. 如果次幂是单数,我们先保留下x,将次幂n-1,再在最终结果res乘x。
  4. 因为二分查找每次减半(i/2),所以我们从后向前循环。
  5. 如果 i 取模2为1,证明幂次为单数,我们就要乘一次之前保留的x值。
  6. 走到最后都会进入if(i % 2 == 1),这个判断,得到最终res值。

二分查找

class Solution {
   
    public double myPow(double x, int n) {
   
        long N = n;
        
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值