class Solution {
    // 实际上 官解也没满足空间复杂度的要求
    // 看到 一个挺秒的方法
    // https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=295&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) {
        int n=numbers.size();
        if(n<=2)
        {
            return numbers[0];
        }

        int sum=0 ; // 1的求和 
        int ans;

        for(int i=0; i<n; ++i)
        {
            if(sum==0)
            {
                sum = 1;
                ans = numbers[i];
            }
            else
            {
                if(numbers[i]==ans) // ana视为1
                {
                    sum++;
                }
                else // 其他数均视为 -1
                {
                    sum--;
                }
            }
        }

        return ans;
    }
};

所谓性质构造