Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Pow(x, n)

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "50" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

Implement pow(x, n), which calculates x raised to the power n (i.e., xn). Example 1: Input: x = 2.00000, n = 10 Output: 1024.00000 Example 2: Input: x = 2.10000, n = 3 Output: 9.26100 Example 3: Input: x = 2.00000, n = -2 Output: 0.25000 Explanation: 2-2 = 1/22 = 1/4 = 0.25 Constraints: -100.0 < x < 100.0 -231 <= n <= 231-1 n is an integer. Either x is not zero or n > 0. -104 <= xn <= 104

Explanation

Here's a breakdown of the solution and the Python code:

  • High-Level Approach:

    • Handle Negative Exponents: If n is negative, invert x and make n positive.
    • Binary Exponentiation: Use the property that xn = xn/2 xn/2 if n is even, and xn = x xn-1 if n is odd. Recursively apply this to calculate the power efficiently.
    • Base Case: If n is 0, return 1.
  • Complexity:

    • Runtime Complexity: O(log n) due to the halving of the exponent in each recursive step. Storage Complexity: O(log n) due to the recursive call stack.

Code

    def myPow(x: float, n: int) -> float:
    """
    Calculates x raised to the power n (x^n).
    """

    if n == 0:
        return 1.0

    if n < 0:
        x = 1 / x
        n = -n

    def power(x, n):
        if n == 0:
            return 1.0
        if n % 2 == 0:
            half_power = power(x, n // 2)
            return half_power * half_power
        else:
            return x * power(x, n - 1)

    return power(x, n)

More from this blog

C

Chatmagic blog

2894 posts