Annettuna on lista, jossa on kokonaislukua. Tehtäväsi on luoda uusi lista, jossa on kaikki tämän listan osajoukkojen summat pienimmästä suurimpaan.
Voit olettaa, että . Algoritmisi tulee toimia tehokkaasti kaikissa näissä tapauksissa.
Toteuta tiedostoon subsets.py
funktio create
, joka muodostaa listan.
def create(t): # TODO if __name__ == "__main__": print(create([1, 2, 3])) # [0, 1, 2, 3, 3, 4, 5, 6] print(create([42, 1337])) # [0, 42, 1337, 1379] print(create([1, 1, 1])) # [0, 1, 1, 1, 2, 2, 2, 3] print(create([5])) # [0, 5]
Selitys: Listan osajoukot ovat , , , , , , ja . Näiden osajoukkojen summat ovat .