題目:
給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?
示例 1
:輸入: [
2,2,1
]輸出:
1示例 2:
輸入: [
4,1,2,1,2
]輸出:
4
解題思路:
1.題目中要求線性空間,最簡單的則是將整個陣列進行相與,最後的結果即為目標數。
**如下:
classsolution
return
ret;
}};
2.可以用hash,統計每個數目的數量即可,找出出現一次的數。
classsolution
else
}map
::iterator it =m.begin();
for(;it!=m.end();++it)
}return0;
}};
LeetCode 初級演算法 只出現一次的數字
1 根據題目的介紹我們可以得到以下結論 方法一 使用異或運算 有了以上結論,我們可以將陣列中的所有元素進行異或運算,得到的結果一定是單獨出現的元素。使用for迴圈從陣列第二位 即下標為1 的運算開始,每迴圈一次將該元素與nums 0 進行異或運算,得到的結果再次賦給nums 0 即使用 運算子。此方...
演算法 只出現一次的數字
1.leetcode136 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。要求時間複雜度o n 空間複雜度o 1 示例 輸入 4,1,2,1,2 輸出4 1 面試官不想要的答案 建字典 排序。2 面試官想要的答案 位運算。思路 如果我們對 0 ...
初級演算法 陣列 五 只出現一次的數字
給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。示例 輸入 2,2,1 輸出 1 include include include using namespace std class solution return nums nums.size 1...