Leetcode 390. Elimina el juego.

Descripción del problema

Dada una lista de enteros ordenados de 1 a n.
Primero, de izquierda a derecha, comenzando por el primer número, elimine cualquier otro número hasta el final de la lista.
En el segundo paso, entre los dígitos restantes, de derecha a izquierda, comenzando desde el penúltimo dígito, todos los demás dígitos se eliminan hasta el comienzo de la lista.
Seguimos repitiendo estos dos pasos, alternando de izquierda a derecha y de derecha a izquierda, hasta que solo quede un número.
Devuelve el último número restante en una lista de longitud n.

Informe de resolución de problemas.

Esta pregunta es similar a Leetcode 62, la clave es encontrar la relación de mapeo.

Código de implementación

class Solution {
public:
    int lastRemaining(int n) {
        if(n==1){
            return 1;
        }
        return 2*(n/2+1-lastRemaining(n/2));
    }
};
Publicado 139 artículos originales · elogiado 8 · 10,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/qq_27690765/article/details/105211521
Recomendado
Clasificación