面試題3題目一:找出數(shù)組中重復(fù)的數(shù)字

主要思路

主要思路就是數(shù)字先生找椅子坐,在沒有匹配之前主要的目的就是讓0先生、1先生、2先生等人分別做到對應(yīng)的0座位、1座位、2座位等座位,直到有一個數(shù)字先生發(fā)現(xiàn)自己所屬的座位有一個和自己一模一樣的人。

代碼

#include<iostream>
using namespace std;

int main()
{
    bool func(int nums[],int length,int *p);
    int a[10] = {2,3,5,2,2,4,6,8,9,1};
    int *p = a;  //指針使用之前要初始化
    func(a,10,p);
    cout<<*p<<endl;
}

bool func(int nums[],int length,int *p)
{
    for(int i=0;i<length;i++)
    {
        cout<<i<<endl;
        while(nums[i] != i)  //人不在合適的位置上
        {
            if(nums[i] == nums[nums[i]]) //發(fā)現(xiàn)有人坐到了自己的位置上面
            {
                cout<<nums[i]<<endl;
                *p = nums[i];
                cout<<"not here"<<endl;
                return true;
            }
            //目的是為了nums[nums[i]] = nums[i] //讓人做到屬于他自己的位置上面
            /*
            這樣寫代碼實在是太丑了
            temp = nums[nums[i]];
            nums[nums[i]] = nums[i]; //key
            nums[i] = temp;
            */
            cout<<"unchanged"<<endl;
            int temp = nums[i];
            nums[i] = nums[temp];
            nums[temp] = temp;
            cout<<"changed"<<endl;
        }
    }
    return false;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容