[LeedCode OJ]#136 Single Number

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:[email protected]

题目链接:https://leetcode.com/problems/single-number/

题意:
找出数组中只出现过一次的数,要求在线性时间内解决且不使用额外的内存

思路:
我们可以通过排序实现,只要这个位置的数与前一位还有后一位的数都不相等,那么这个数就是单一的

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];
    }
};


你可能感兴趣的:(leedcode)