Leecode136
题目
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
分析
这道题啊,由于需要考虑到线性时间复杂度,所以暴力法是不可行得。所以就需要能够一次遍历就返回只存在一个的值。因此可以考虑使用哈希集。
解法
代码:
public class Solution
{
public int SingleNumber(int[] nums)
{
HashSet<int> h = new HashSet<int>();
for (int i = 0; i < nums.Length; i++)
{
if (!h.Add(nums[i]))
h.Remove(nums[i]); ;
}
return h.First();
}
}
然后我也想不出别的了
效果: