CSES - Pariton luku Annettuna on lista lukuja, jossa jokainen luku esiintyy kahdesti paitsi yksi luku esiintyy vain kerran. Tehtäväsi on etsiä tämä pariton luku.

Listan jokainen alkio on kokonaisluku välillä $1 \dots 10^9$ ja listassa on enintään $10^5$ alkiota. Tavoitteena on, että algoritmin aikavaativuus on $O(n)$ tai $O(n \log n)$.

Python

Toteuta tiedostoon findodd.py funktio find, joka ilmoittaa parittoman luvun.
def find(t):
    # TODO

if __name__ == "__main__":
    print(find([2,2,4,3,4])) # 3
    print(find([1,2,3,4,1,2,3])) # 4
    print(find([1])) # 1
    print(find([1,4,2,3,2,3,4])) # 1
    print(find([4,1,3,2,3,2,1])) # 4
Java

Toteuta tiedostoon FindOdd.java metodi find, joka ilmoittaa parittoman luvun.
public class FindOdd {
    public int find(int[] t) {
        // TODO
    }

    public static void main(String[] args) {
        FindOdd f = new FindOdd();
        System.out.println(f.find(new int[] {2,2,4,3,4})); // 3
        System.out.println(f.find(new int[] {1,2,3,4,1,2,3})); // 4
        System.out.println(f.find(new int[] {1})); // 1
        System.out.println(f.find(new int[] {1,4,2,3,2,3,4})); // 1
        System.out.println(f.find(new int[] {4,1,3,2,3,2,1})); // 4
    }
}