A sequência de Connell

A sequência de Connell pode ser representada como uma série crescente de linhas numeradas alternadas:

  • Se o número da linha for ímpar, a linha contém uma quantidade de números ímpares igual ao número da linha, ordenados em ordem crescente.
  • Se o número da linha for par, a linha contém uma quantidade de números pares igual ao número da linha, ordenados em ordem crescente.

Cada número em uma linha é igual ao seu próximo termo menos 2, e o último número (e o maior) da sequência precisa ser o quadrado do número da linha. Os números precisam ser únicos: não há duplicatas na sequência, e nem todos os números fazem parte dela.

Line 1 = 1
// 1 odd number

Line 2 = 2, 4
// 2 even numbers

Line 3 = 5, 7, 9
// 3 odd numbers
// Notice how the number 3 is missing.
// Highest number in line is 9 (the square of line number)

Line 4 = 10, 12, 14, 16
// 4 even numbers

and so on...

Dado um start e um end, que representam a linha inicial e final da sequência, você deve implementar uma função que retorne o índice de n em um array gerado contendo a parte correspondente da sequência de Connell. Se n não estiver no array, você deverá retornar a string "Not Found".

Exemplos

connellSequence(1, 3, 4) ➞ 2
// sequence = [1, 2, 4, 5, 7, 9]
// Number 4 is at index 2

connellSequence(2, 3, 4) ➞ 1
// sequence = [2, 4, 5, 7, 9]
// Number 4 is at index 1

connellSequence(4, 5, 22) ➞ "Not Found"
// sequence = [10, 12, 14, 16, 17, 19, 21, 23, 25]
// Number 22 is not in the sequence

Observações

É possível resolver isso com complexidade de tempo e espaço O(1)!