アルゴリズム課は十七週間Single Numberです.
1678 ワード
Gven an array of integers,everelement apears twice except for one.Find that single one.
Note:Your algorithm shout have a linea runtime compplexity.>Could you implement it without using extra memory?整数配列を指定します.中の数字は1つだけ1回、他は2回です.この例外の整数を探してください.アルゴリズムの時間複雑さは線形であり,余分なメモリを使用する必要がないはずである.
問題解決の考え:先に並べ替えて、並べ替えの実現は早い列で、時間の複雑さは要求に合います.並べ替え後、偶数の数桁と奇数の桁が同じかどうかを比較します.違いがあれば戻ります.最後の桁なら、返します.一サイクル、線形時間は要求に適合します.
Note:Your algorithm shout have a linea runtime compplexity.>Could you implement it without using extra memory?整数配列を指定します.中の数字は1つだけ1回、他は2回です.この例外の整数を探してください.アルゴリズムの時間複雑さは線形であり,余分なメモリを使用する必要がないはずである.
問題解決の考え:先に並べ替えて、並べ替えの実現は早い列で、時間の複雑さは要求に合います.並べ替え後、偶数の数桁と奇数の桁が同じかどうかを比較します.違いがあれば戻ります.最後の桁なら、返します.一サイクル、線形時間は要求に適合します.
class Solution {
public:
int singleNumber(vector<int>& nums) {
sort(nums.begin(), nums.end());
for(int i = 0; i < nums.size(); i = i+2)
{
if(i%2==0)
{
if(nums[i]!=nums[i+1])
{
return nums[i];
}
}
else
{
if(i == nums.size()-1)
{
return nums[i];
}
}
}
}
};