A special site for solving fun programming problems and challenges, interested in computer science, programming, basics, data structure and algorithms

 


Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.

You must implement a solution with a linear runtime complexity and use only constant extra space.

 

Example 1:

Input: nums = [2,2,1]
Output: 1

Example 2:

Input: nums = [4,1,2,1,2]
Output: 4

Example 3:

Input: nums = [1]
Output: 1

 


Constraints:

  • 1 <= nums.length <= 3 * 104
  • -3 * 104 <= nums[i] <= 3 * 104
  • Each element in the array appears twice except for one element which appears only once.
solution
Runtime: 36 ms, faster than 27.27% of C++ online submissions for Single Number.
Memory Usage: 17 MB, less than 49.56% of C++ online submissions for Single Number.
class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int n;
        if(nums.size()==1)
            return nums[0];
        
        sort(nums.begin(),nums.end());
        
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]==nums[i+1])
            {
                i++;
            }else 
            {
                n=nums[i];
            }
        }
        
        return n;
    }
};

No comments:

Post a Comment