題目:在乙個長度為n的陣列裡的所有數字都在0~n-1的範圍內,陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次,請找出陣列中任意乙個重複的數字。
思想:從頭到尾依次掃瞄這個陣列中的每個數字,當掃瞄到下標為i的數字時,首先比較這個數字(用m表示)是不是等於i。如果是,則接著掃瞄下乙個數字;如果不是,則再拿它和第m個數字進行比較,如果相等,就找到了乙個重複的數字(該數字在下標為i和m的位置都出現了);如果不相等,就把第i個數字和第m個數字交換,把m放到屬於它的位置。接下來在重複這個比較、交換的過程,知道發現乙個重複的數字。
bool duplicate(int numbers,int length,int *duplication)
}length<=0)
return false;
for(int i=0;ilength-1)
return false;
}for(int i=0;i//把第i個數字和第m個數字交換
numbers[i]=numbers[i]^numbers[numbers[i]};
numbers[numbers[i]]=numbers[i]^numbers[numbers[i]];
numbers[i]=numbers[i]^numbers[numbers[i]];}}
return false;
}
陣列 陣列中重複的數字
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。思路 python 實現 an highlighted block ...
陣列中重複的數字
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道哪幾個 數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如 如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。include iostream using namespace ...
陣列中重複的數字
題目 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。思路 用雜湊表解決的時間複雜度和空間複雜度為o n 因為陣列中...