Màxims locals d'una llista X95245


Statement
 

pdf   zip   main.cc

thehtml

Un màxim local d’una lista és un element de la llista que és major que el seu predecessor i que el seu successor en la llista.

Implementa una funció ITERATIVA que, donada un llista d’enters, torna una altra llista amb els màxims locals de la llista donada.

La capçalera de la funció és la següent:

// Pre: cert // Post: retorna una llista amb els màxims locals de l. list<int> maxims_locals_llista(const list<int> &l)

Per exemple:

maxims_locals_llista([3, 2, 5, 3, 7, 7, 1, 6, 2]) = [5, 6]

5 és un màxim local ja que és major que 2 (el seu predecessor) i que 3 (el seu successor). 6 també és un màxim local ja que és major que 1 (el seu predecessor) i que 2 (el seu successor).

Observació Només cal enviar el procediment demanat; el programa principal serà ignorat.

Observació

La funció i subfuncions que creïs han de treballar només amb llistes (la classe list de la biblioteca STL). Heu de trobar una solució ITERATIVA i eficient del problema. En particular, no hi hauria d’haver cap crida recursiva en cap de les funcions que implementis. Si crees funcions auxiliars, afegeix-hi les corresponents Pre i Post. En els bucles inclou l’invariant del bucle.

Public test cases
  • Input/Output

    maxims_locals_llista([12, 4, 4, 4, 6, 7, 10]) → []
    maxims_locals_llista([]) → []
    maxims_locals_llista([1, 3, 2, 3, 2, 3, 2, 3, 2, 3]) → [3, 3, 3, 3]
    maxims_locals_llista([1, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) → [3, 5, 7, 9, 11, 13, 15]
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++