50. Pow(x, n)
https://leetcode.com/problems/powx-n/ Implement pow( x , n ) , which calculates x raised to the power n (x n ). Example 1: Input: 2.00000, 10 Output: 1024.00000 Example 2: Input: 2.10000, 3 Output: 9.26100 Example 3: Input: 2.00000, -2 Output: 0.25000 Explanation: 2 -2 = 1/2 2 = 1/4 = 0.25 Note: -100.0 < x < 100.0 n is a 32-bit signed integer, within the range [−2 31 , 2 31 − 1] --- Intuition if pow < 0 pow = Math.abs(pow) base = 1.0 / base Cast power to long to prevent against integer overflow when taking Math.abs while (pow > 0) { pow = pow / 2; } Above is log N complexity To compute power, square the number in every iteration - running calculation If power is odd, multiply answer with number one extra time --- Time - O(log N) Space - O(1) ---