[LC] 268. Missing Number

Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.

Example 1:

Input: [3,0,1]
Output: 2

Example 2:

Input: [9,6,4,2,3,5,7,0,1]
Output: 8

Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

 

Solution 1:

class Solution {
    public int missingNumber(int[] nums) {
        int sum = 0;
        for (int i = 0; i <= nums.length; i++) {
           sum += i;
        }
        for (int num : nums) {
            sum -= num;
        }
        return sum;
    }
}

 

Solution 2:

class Solution {
    public int missingNumber(int[] nums) {
        int res = nums.length;
        for (int i = 0; i< nums.length; i++) {
            res ^= i ^ nums[i];
        }
        return res;
    }
}

 

posted @ 2019-11-15 11:57  xuan_abc  阅读(76)  评论(0编辑  收藏  举报