LeetCode-python 268.缺失数字

题目链接
难度:简单       类型: 数组、数学


给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。

示例1

输入: [3,0,1]
输出: 2

示例2

输入: [9,6,4,2,3,5,7,0,1]
输出: 8

解题思路


方法1:
1到n的和是\frac{n*(n-1)}{2},数组长度为n时,是0到n+1的数列中缺失了一个数,用该有的和-当前数组元素的和=缺失的数字

方法2:
数组中所有的数字与1到n+1进行异或操作,出现两次的数都会消失,只剩下出现一次的数,即为缺失的数
类似于136.只出现一次的数字

代码实现

方法1:

class Solution:
    def missingNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n = len(nums)
        return  n*(n+1)//2 - sum(nums) 

方法2:

class Solution:
    def missingNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        res = 0
        for i, num in enumerate(nums):
            res ^= (i+1) ^ num
        return res

本文链接:https://www.jianshu.com/p/3dd5fa2996a6

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [LeetCode][Python]268. 缺失数字给定一个包含 0, 1, 2, ..., n 中 n 个数的...
    bluescorpio阅读 267评论 0 1
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,156评论 0 18
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,141评论 6 13
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 经历了连续两天的加班,昨晚心情郁闷导致的失眠后,终于偷来了一点惬意的小时光,在这个小时光里暂且告别工作,暂...
    我爱呆萌佩阅读 270评论 0 0