题目
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
class Solution {
public:
int singleNumber(vector<int>& nums) {
}
};
思路
先排序,算法复杂度为sort的O(nlog2n),这道题还可以用哈希表,时间复杂度更低,以后再更新。
代码
class Solution {
public:
int singleNumber(vector<int>& nums) {
int size = nums.size();
sort(nums.begin(), nums.end());
for (int i = 1; i < size; i += 2) {
if (nums[i-1] != nums[i]) {
return nums[i-1];
}
}
return nums[size-1];
}
};
寻找唯一元素
本文介绍了一种算法问题的解决方案:在一个每个元素都出现两次除了一个的整数数组中找到那个只出现一次的元素。通过排序后比较相邻元素的方法,实现了一个线性时间复杂度的查找方案。
467

被折叠的 条评论
为什么被折叠?



