Wednesday, 3 August 2016

Missing Number

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3] return 2.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

Approach : Use xor of all the nums from 0 to n and elements of nums array.
Because of the property that  i ^ i  = 0, only missing element survives in the end.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int n = nums.size();
        int result = 0;
        for(int i = 0; i <= n; i++){
            result = result ^ i;
        }
        for(int i = 0; i < n; i++){
            result = result ^ nums[i];
        }
        return result;
    }
};
Share:

0 comments:

Post a Comment

Contact Me

Name

Email *

Message *

Popular Posts