LeetCode 50. Pow(x, n)

I got stuck on this problem, even after looking at answers, I could not follow algorithm. Following video really helped me understand it:

Here is my solution after watching this video:

/**
 * @param {number} x
 * @param {number} n
 * @return {number}
 */
 var  myPow   = function (x , n ) {
     if  (x   ==   0 )  return   0

     if  (n   ==   0 )  return   1

     if  (n   <   0 ) {
        x   =   1  / x
        n   =   -  1   *  n
    }

     const  half   =  myPow (x , Math.floor (n  /  2 ))
     let  ans   =  half   *  half

     if  (n  %  2   ==   1 ) ans   =  x   *  ans

     return  ans
};
Published on

Previous post: LeetCode 1570. Dot Product of Two Sparse Vectors

Next post: Avicii – the Nights