Luvut 1,2,\dots,n ovat aluksi jokainen omassa joukossaan. Tehtäväsi on toteuttaa luokka, jossa voi yhdistää kaksi joukkoa sekä hakea suurimman joukon koon.
Toteuta luokka MaxSet
, jossa on seuraavat metodit:
merge
yhdistää joukot, joissa on luvut a ja b (jos ne ovat eri joukoissa)get_max
ilmoittaa suurimman joukon koon
Kummankin metodin tulee toimia tehokkaasti.
Toteuta luokka tiedostoon maxset.py
seuraavan esimerkin mukaisesti.
class MaxSet: def __init__(self, n): # TODO def merge(self, a, b): # TODO def get_max(self): # TODO if __name__ == "__main__": m = MaxSet(5) print(m.get_max()) # 1 m.merge(1, 2) m.merge(3, 4) m.merge(3, 5) print(m.get_max()) # 3 m.merge(1, 5) print(m.get_max()) # 5