LeetCode 268. Missing Number

来源:互联网 发布:淘宝助手在哪 编辑:程序博客网 时间:2024/06/06 09:43

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?

题意:0~n中间少了一个数

思路1:每个位置放了一个数,但是有一个位置没有放。采用求和的方法,可以把没有放的这个数找出来。

class Solution(object):    def missingNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        sum = len(nums)        for i in range(len(nums)):            sum += i            sum -= nums[i]        return sum

思路2:异或运算 a^b^b=a,这个运算满足交换律,大致思想同上。

class Solution(object):    def missingNumber(self, nums):        """        :type nums: List[int]        :rtype: int        """        xor = len(nums)        for i in range(len(nums)):            xor ^= i ^ nums[i]        return xor
原创粉丝点击