leetcode -- Missing Number -- 位运算重点

来源:互联网 发布:php程序员自我评价 编辑:程序博客网 时间:2024/05/16 19:12

https://leetcode.com/problems/missing-number/

思路1

等差数列前n项和 - 数组之和

思路2

这里需要注意的是,input的数组不一定的sorted的,并且是从0-n这n+1个数字中选出n个.所以这里n == len(nums), 记住下面的办法就行。类似的题目还有,只有一个数出现一次,其余都出现两次,也可以用xor来找出那个数

对于no missing array, [0,1,2,3]对应于index也是[0,1,2,3]. 所以value与index对应位置xor得到的结果肯定是0.

但如果不相同的话,例如[0,1,3]对应的index是[0,1,2], 那么对应位置value与index对应位置xor之后,得到的数值再xor len(nums), e.g. 3 就可以得到最后的missing number

是对index,和数,而且要先数后index。最后弄len(num)这个index

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