1. 程式人生 > >一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數

一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數

 


/*********************************************
*函式功能: 一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數
*引數說明
*    輸入: [1,2,4,5,6,...,39,39,40,41,42,...,100]
*    輸出: 39
*時間複雜度:O(N) 空間複雜度 O(1)
*作者:guoliang zheng
*日期:2018-09-30-23.33
***********************************************/
int Solution(vector<int> nums)
{
    if(nums.size()!=101) return 0;
    int temp=0;
    for(int i=0;i<nums.size();i++)
    {
        temp^=nums[i];
    }
    return temp^100;
}

int main()
{
    vector<int> nums;
    for(int i=1;i<=100;i++)
    {
        nums.push_back(i);
    }
    nums.push_back(39);
    for(int i=1;i<10;i++)
    {
        swap(nums[i*2],nums[i*3]);
    }
    cout<<Solution(nums)<<endl;

    return 0;
}