CSES - Moodi

Sinulle annetaan lukuja yksi kerrallaan. Tehtäväsi on kertoa jokaisen luvun kohdalla, mikä on siihen mennessä annettujen lukujen moodi (eli yleisin luku). Jos moodeja on useita, niistä valitaan pienin mahdollinen.

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

Python

Toteuta tiedostoon mode.py luokka Mode, jonka funktio add lisää uuden luvun ja palauttaa lisättyjen lukujen moodin.

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

if __name__ == "__main__":
    m = Mode()
    print(m.add(1)) # 1
    print(m.add(2)) # 1
    print(m.add(2)) # 2
    print(m.add(1)) # 1
    print(m.add(3)) # 1
    print(m.add(3)) # 1
    print(m.add(3)) # 3

Java

Toteuta tiedostoon Mode.java luokka Mode, jonka metodi add lisää uuden luvun ja palauttaa lisättyjen lukujen moodin.

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

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