public static int majorityNumber(ArrayList<Integer> nums) {
        // write your code
        int c1=0, c2=0;
        int v1=0, v2=0;
        for (int a:nums) {
            if (c1==0||(c1!=0&&a==v1)) {
                ++c1;
                v1=a;
            } else if (c2==0||(c2!=0&&a==v2)) {
                ++c2;
                v2=a;
            } else {
                --c1;
                --c2;
                if (c1==0) {
                    v1=a;
                    ++c1;
                } else if (c2==0) {
                    ++c2;
                    v2=a;
                }
            }
        }
        c1=0;c2=0;
        for (int a:nums) {
            if (v1==a)
                ++c1;
            if (v2==a)
                ++c2;
        }
        return c1>c2?v1:v2;
    }