Niech będzie listą liczb całkowitych dodatnich bez szczególnego uporządkowania, które mogą zawierać duplikaty. Napisz program lub funkcję, która wypisze listę liczb całkowitych dodatnich M (których kolejność jest nieistotna), tak że scalenie L i M daje najmniejszą listę, która może całkowicie podzielić się na identyczne zakresy liczb całkowitych [ 1 .. i ] , gdzie i jest największy element w L
Przykład
Let L = [5,3,3,2,7]. Maksymalnym elementem Ljest 7. Najczęściej występuje określona liczba całkowita 2( 3pojawia się 2 razy). Dlatego musimy wypisać listę M, która pozwoli na uzupełnienie L, abyśmy mogli konstruować 2zakresy liczb całkowitych od 1do 7.
Dlatego musimy wyprowadzać M = [1,1,2,4,4,5,6,6,7], aby każda liczba całkowita od 1do pojawiała 7się 2razy.
Wejścia i wyjścia
- Używaj czegokolwiek w swoim języku, który jest podobny do list. Struktura danych używana dla danych wejściowych i wyjściowych musi być taka sama.
- Lista wejściowa będzie zawierać tylko dodatnie liczby całkowite.
- Lista wejściowa nie będzie pusta.
- Nie można założyć, że lista wejściowa jest posortowana.
- Kolejność na liście wyników jest nieistotna.
Przypadki testowe
Input Output
[1] []
[7] [1, 2, 3, 4, 5, 6]
[1, 1, 1] []
[1, 8] [2, 3, 4, 5, 6, 7]
[3, 3, 3, 3] [1, 1, 1, 1, 2, 2, 2, 2]
[5, 2, 4, 5, 2] [1, 1, 3, 3, 4]
[5, 2, 4, 5, 5] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4]
[5, 3, 3, 2, 7] [1, 1, 2, 4, 4, 5, 6, 6, 7]
Punktacja
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
ijest największym elementem L, to była literówka w specyfikacji.
M=[1,1,2,2,3]do L=[3]while „scalanie L i M wyniki na liście, które mogą całkowicie podzielona na identycznych zakresów liczb całkowitych [1..i]”?
[1,2]. Wyjaśnię to, aby było jasne, że powinno to skutkować minimalną liczbą zakresów.
inajwiększym elementemLlubM?