Montanhas ou vales

Uma montanha é um array com exatamente um pico.

  • Todos os números à esquerda do pico estão em ordem não decrescente.
  • Todos os números à direita do pico estão em ordem não crescente.
  • O pico NÃO PODE estar em uma das extremidades.

Um vale é um array com exatamente um ponto mais baixo.

  • Todos os números à esquerda do ponto mais baixo estão em ordem não crescente.
  • Todos os números à direita do ponto mais baixo estão em ordem não decrescente.
  • O ponto mais baixo NÃO PODE estar em uma das extremidades.

Alguns exemplos de montanhas e vales:

Mountain A:  [1, 3, 5, 4, 3, 2]   // 5 is the peak
Mountain B:  [-1, 0, -1]   // 0 is the peak
Mountain B:  [-1, -1, 0, -1, -1]   // 0 is the peak (plateau on both sides is okay)

Valley A: [10, 9, 8, 7, 2, 3, 4, 5]   // 2 is the trough
Valley B: [350, 100, 200, 400, 700]  // 100 is the trough

Não são montanhas nem vales:

Landscape A: [1, 2, 3, 2, 4, 1]  // 2 peaks (3, 4), not 1
Landscape B: [5, 4, 3, 2, 1]  // Peak cannot be a boundary element
Landscape B: [0, -1, -1, 0, -1, -1]  // 2 peaks (0)

Com base nas regras acima, escreva uma função que receba um array e retorne "mountain", "valley" ou "neither".

Exemplos

LandscapeType([3, 4, 5, 4, 3]) ➞ "mountain"

LandscapeType([9, 7, 3, 1, 2, 4]) ➞ "valley"

LandscapeType([9, 8, 9]) ➞ "valley"

LandscapeType([9, 8, 9, 8]) ➞ "neither"

Observações

  • Um pico não é exatamente a mesma coisa que o max de um array. O max é um número único, mas um array pode ter vários picos. No entanto, se houver apenas um pico em um array, então é verdade que pico = max.
  • Veja os comentários para obter uma dica.