CSES - Ainoa luku

Annettuna on kokonaislukuja sisältävä lista. Listassa on n-1 kertaa sama luku ja kerran toinen luku. Tehtäväsi on etsiä luku, joka esiintyy vain kerran.

Esimerkiksi kun lista on [2, 1, 1, 1], sinun tulee löytää luku 2. Vastaavasti kun lista on [5, 5, 5, 3, 5], sinun tulee löytää luku 3.

Toteuta tiedostoon onlyone.py funktio find_number, jolle annetaan parametrina lista lukuja. Funktion tulee palauttaa luku, joka esiintyy vain kerran. Voit olettaa, että listassa on vähintään kolme lukua ja vastaus on aina olemassa.

Sinun tulee toteuttaa tehokas ratkaisu, jonka aikavaativuus on O(n). Et voi esimerkiksi käydä jokaisen luvun kohdalla koko listaa läpi ja laskea, montako kertaa luku esiintyy listalla.

Tehtäväpohjan viimeisessä testissä lista sisältää 10^5 kertaa luvun 1 ja kerran luvun 2. Funktiosi tulee toimia tehokkaasti tässäkin tapauksessa.

def find_number(numbers):
    # TODO

if __name__ == "__main__":
    print(find_number([1, 1, 1, 2])) # 2
    print(find_number([1, 1, 2, 1])) # 2
    print(find_number([1, 2, 1, 1])) # 2
    print(find_number([2, 1, 1, 1])) # 2
    print(find_number([5, 5, 5, 3, 5])) # 3
    print(find_number([1, 100, 1])) # 100

    numbers = [1] * 10**5 + [2]
    print(find_number(numbers)) # 2