Hackerrank: Picking Numbers

En este post te voy a explicar como resolver el challenge Picking Numbers de HackerRank.

Primeros pasos.

El ejercicio consiste en obtener la mayor secuencia de elementos de una secuencia (N…Nx) donde se cumpla alguna de las siguientes condiciones N == Nx, N – 1 == Nx, y N == Nx – 1. Ejemplo:

  • Secuencia 2, 3, 1  N = 2, 2 == 3-1, 1 == 2-1. Cumple con la condición. La lista contiene 3 miembros.
  • Secuencia 1, 2, 4  N = 1, 1 == 2-1. El 4 no cumple con la condición. La lista contiene dos miembros.

Resolución.

La descripción del code challenge no menciona que el arreglo debe de estar ordenado antes de ejecutar tu algoritmo.

El caso: 4, 6, 5, 3, 3, 1

Genera las secuencias

  • 6, 5
  • 3, 3, 1

No hay manera de producir el output esperado, 3. Pero, si ordenas el arreglo, la cosa cambia.

Caso: 1, 3, 3, 4, 5, 6

  • 3, 3, 4
  • 3, 4
  • 4, 5
  • 5, 6

Solución.

Gustavo Sánchez