您的位置:首页 > 其它

LeetCode 268. Missing Number - 求和、异或

2017-11-01 15:08 399 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法