Skip to content

Latest commit

 

History

History
48 lines (38 loc) · 1.29 KB

50.md

File metadata and controls

48 lines (38 loc) · 1.29 KB

✏️Leetcode之PHP版题目解析(50. Pow(x, n))

2020-02-20 吴亲库里 库里的深夜食堂


✏️描述

实现 pow(x, n) ,即计算 x 的 n 次幂函数。。


✏️题目实例

****

✏️题目分析

这道题可以直观的用暴力法来解决,具体的思路就是模拟整个过程,将值x连乘n次.如果n是负数的话我们可以把x用 1/x 代替,然后将n取绝对值.这种方法的时间复杂度是O(n).还有一种更快的方法,叫快速幂算法,它的时间复杂度为O(logn)

✏️解

 /**
     * @param Float $x
     * @param Integer $n
     * @return Float
     */
    function myPow($x, $n) {
    if(!$n){
        return 1;
    }
    if ($n <= 0) {
        return 1/$this->myPow($x, -$n);
    }
    if ($n %2) {
        return $x * $this->myPow($x, $n-1);
    }

    return $this->myPow($x*$x, $n/2);
    }

联系