您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页268. 缺失数字

268. 缺失数字

来源:二三四教育网

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

【示例1】
输入: [3,0,1]
输出: 2

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

【Swift代码实现】
1、数学方法实现,(0-n的和) 减去 (给出数组元素之和)= 所求值

func missingNumber(_ nums: [Int]) -> Int {
    let sum = nums.count * (nums.count + 1) / 2
    var s = 0
    for num in nums {
        s+=num
    }
    return sum-s
}

2、异或运算

func missingNumber(_ nums: [Int]) -> Int {
    var result = nums.count
    for num in 0..<nums.count {
        result ^= nums[num]
        result ^= num
    }
    return result
}

异或运算有以下特性:
  0^0 = 0,
  1^0 = 1,
  0^1 = 1,
  1^1 = 0;
(1) 0 ^ 0=0,0^1=1 0异或任何数=任何数
(2) 1 ^ 0=1,1^1=0 1异或任何数-任何数取反
(3) 任何数异或自己=把自己置0

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务