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
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.