其它数都出现k次的数组中找到只出现一次的数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzc2608/article/details/81178856
#include <iostream>
#include <vector>
using namespace std;
vector<int> getKNum(int value, int k)
{
    vector<int> res(32);
    int index = 0;
    while(value != 0)
    {
        res[index++] = value % k;
        value = value / k;
    }
    return res;
}
int genumfromK(vector<int>& arr, int k)
{
    int res = 0;
    for(int i = arr.size(); i != -1 ; --i)
        res = res * k + arr[i];
    return res;
}
void setExclu(vector<int>& arr, int value, int k)
{
    vector<int> cur = getKNum(value, k);
    for(int i = 0; i != arr.size(); ++i)
        arr[i] = (arr[i] + cur[i]) % k;
}
int onceNum(vector<int>& arr, int k)
{
    vector<int> eo(32);
    for(int i = 0; i != arr.size(); ++i)
    {
        setExclu(eo, arr[i], k);
      //  cout << genumfromK(eo, k) << endl;;
    }

    return genumfromK(eo, k);
}
int main()
{
     int a[] = {1, 1, 2, 3, 4, 4, 3, 5, 2};
    vector<int> ivec(a, a + 9);
    cout << onceNum(ivec, 2) << endl;
}

猜你喜欢

转载自blog.csdn.net/wzc2608/article/details/81178856