【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题意:
找出数组中只出现过一次的数,要求在线性时间内解决且不使用额外的内存
思路:
我们可以通过排序实现,只要这个位置的数与前一位还有后一位的数都不相等,那么这个数就是单一的
class Solution
{
public:
int singleNumber(vector<int>& nums)
{
int len = nums.size();
int i,j;
sort(nums.begin(),nums.end());
if(nums[0]!=nums[1])
return nums[0];
for(i = 1; i<len; i++)
{
if(nums[i]!=nums[i-1]&&nums[i]!=nums[i+1])
return nums[i];
}
return nums[len-1];
}
};

本文提供了一种在线性时间内解决LeetCode单数元素问题的方法,通过排序数组并查找仅出现一次的元素。代码示例展示了如何在不使用额外内存的情况下找到数组中的单数元素。
535

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



