CSES - Mex-luku

Sinulle annetaan lukuja yksi kerrallaan. Tehtäväsi on kertoa jokaisen luvun kohdalla, mikä on siihen mennessä annettujen lukujen mex-luku eli pienin puuttuva epänegatiivinen luku.

Voit olettaa, että jokainen luku on kokonaisluku välillä 0 \dots 10^9 ja lukuja annetaan enintään 10^5.

Python

Toteuta tiedostoon mex.py luokka Mex, jonka funktio add lisää uuden luvun ja palauttaa lisättyjen lukujen mex-luvun.

class Mex:
    def add(self, x):
        # TODO

if __name__ == "__main__":
    m = Mex()
    print(m.add(1)) # 0
    print(m.add(3)) # 0
    print(m.add(4)) # 0
    print(m.add(0)) # 2
    print(m.add(5)) # 2
    print(m.add(2)) # 6

Java

Toteuta tiedostoon Mex.java luokka Mex, jonka metodi add lisää uuden luvun ja palauttaa lisättyjen lukujen mex-luvun.

public class Mex {
    public int add(int x) {
        // TODO
    }

    public static void main(String[] args) {
        Mex m = new Mex();
        System.out.println(m.add(1)); // 0
        System.out.println(m.add(3)); // 0
        System.out.println(m.add(4)); // 0
        System.out.println(m.add(0)); // 2
        System.out.println(m.add(5)); // 2
        System.out.println(m.add(2)); // 6
    }
}