因为提供的接口为指针,首先用容器进行接收,这里选择vector(也是数组)接收,然后排序,三个为一组,进行排序,如果v[i] != v[i+1],v[i]则为出现一次的数字,如果前面都没问题,则为最后元素。

public:
    int singleNumber(int* A, int n) {
        vector<int> v;
        while (n--)
        {
            v.push_back(*A);
            A++;
        }
        sort(v.begin(), v.end());
        for(int i = 0; i < v.size(); i+=3)
        {
            if((i+1) < v.size() && v[i] != v[i+1])
            {
                return v[i];
            }
        }
        return v[v.size()-1];
    }
};