【LeetCode】 50. pow (x, n) (medio) (Java)

【LeetCode】 50. pow (x, n) (medio) (Java)

Tema Dirección: https://leetcode.com/problems/powx-n/

Descripción Asunto:

Implementar pow (x, n), que calcula x elevado a la potencia n (xn).

Ejemplo 1:

Input: 2.00000, 10
Output: 1024.00000

Ejemplo 2:

Input: 2.10000, 3
Output: 9.26100

Ejemplo 3:

Input: 2.00000, -2
Output: 0.25000
Explanation: 2-2 = 1/22 = 1/4 = 0.25

Nota:

-100.0 < x < 100.0
n is a 32-bit signed integer, within the range [−2^31, 2^31 − 1]

Sujeto al efecto

Lograr pow (x, n), es decir, una función de n-ésima potencia de x.

Enfoque de resolución de problemas

Dicotomía, constantemente medio para la multiplicación complejidad O (log n)

class Solution {
    public double myPow(double x, int n) {
        if (x == 0) return 0;
        if (n == 0) return 1;
        if (n == 1) return x;
        if (n == -1) return 1 / x;
        double half = myPow(x, n / 2);
        if (n > 0) {
            return n % 2 == 0 ? half * half : half * half * x;
        } else {
            return n % 2 == 0 ? half * half : half * half / x;
        }
    }
}

Cuando la ejecución: 1 ms, venció el 97,78% de todos los usuarios a presentar en Java
consumo de memoria: 37,8 MB, batir el 5,02% de todos los usuarios a presentar en Java

Publicado 81 artículos originales · ganado elogios 6 · vistas 2294

Supongo que te gusta

Origin blog.csdn.net/qq_16927853/article/details/104754777
Recomendado
Clasificación