zoukankan      html  css  js  c++  java
  • 164-268. 丢失的数字

    给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。(第一个和第三个我写的,群众的眼睛是光亮的)
    class Solution(object):
        def missingNumber1(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            max_value = len(nums)
            new_list = [i for i in range(max_value+1)]
            return (set(new_list) - set(nums)).pop()
    
        def missingNumber2(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
    
            disappear_num = len(nums) * (len(nums)+1) // 2 - sum(nums)
            return disappear_num
    
        def missingNumber(self, nums):
            """突发灵感想到了这个
            :type nums: List[int]
            :rtype: int
            """
            c = 0
            k = 0
            for i in nums:
                c ^= i
                c ^= k
                k += 1
            c ^= len(nums)
            return c
    
    
    if __name__ == '__main__':
        nums = [9, 6, 4, 2, 3, 5, 7, 0, 1]
        s1 = Solution()
        root = s1.missingNumber(nums)
        print(root)
    
  • 相关阅读:
    课后作业一
    软工假期预习作业
    Spark2.0自定义累加器
    JAVA hashmap知识整理
    Spark 累加器
    RDD与DataFrame的转换
    Scala笔记整理
    Spark RDD
    Hbase的flush机制
    Spring源码-ImportSelector实现分析
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/14355752.html
Copyright © 2011-2022 走看看