Categorías
Algorithms

LeetCode – Ugly Number II (Java)

Escribe un programa para encontrar el n-ésimo número feo. Los números feos son números positivos cuyos factores primos solo incluyen 2, 3, 5. Por ejemplo, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 es la secuencia de los primeros 10 números feos. Tenga en cuenta que 1 se suele tratar como un número desagradable.

Solución Java

public int nthUglyNumber(int n) {
    if(n<=0)
        return 0;
 
    ArrayList<Integer> list = new ArrayList<Integer>();
    list.add(1);
 
    int i=0;
    int j=0;
    int k=0;
 
    while(list.size()<n){
        int m2 = list.get(i)*2;
        int m3 = list.get(j)*3;
        int m5 = list.get(k)*5;
 
        int min = Math.min(m2, Math.min(m3, m5));
        list.add(min);
 
        if(min==m2)
            i++;
 
        if(min==m3)
            j++;
 
        if(min==m5)
            k++;
    }
 
    return list.get(list.size()-1);
}

  LeetCode - Reconstruir itinerario (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *