Subsucesiones crecientes de elementos consecutivos
Definir la función
1 |
subsucesiones :: [Integer] -> [[Integer]] |
tal que (subsucesiones xs) es la lista de las subsucesiones crecientes de elementos consecutivos de xs. Por ejemplo,
1 2 3 4 |
subsucesiones [1,0,1,2,3,0,4,5] == [[1],[0,1,2,3],[0,4,5]] subsucesiones [5,6,1,3,2,7] == [[5,6],[1,3],[2,7]] subsucesiones [2,3,3,4,5] == [[2,3],[3,4,5]] subsucesiones [7,6,5,4] == [[7],[6],[5],[4]] |
Soluciones
1 2 3 4 5 6 7 |
subsucesiones :: [Integer] -> [[Integer]] subsucesiones [] = [] subsucesiones [x] = [[x]] subsucesiones (x:y:zs) | x < y = (x:us):vss | otherwise = [x]:p where p@(us:vss) = subsucesiones (y:zs) |