内容简介:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。本次题目可以采用异或(^)来解决。
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例
示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 复制代码
答案
本次题目可以采用异或(^)来解决。
异或的规则:
0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 0 1 ^ 1 = 0 复制代码
总结
- 任何数异或0等于该数本身
- 两个相同的数异或等于0
- 通过二进制进行位数相加
代码如下:
func singleNumber(_ nums: [Int]) -> Int { var singleNum = 0 for num in nums { singleNum = singleNum ^ num } return singleNum } 复制代码
nums = [2,3,4,3,2]
的执行结果如下:
第一次循环: 0 ^ 2 = 2 二进制:0 + 10 = 10 第二次循环: 2 ^ 3 = 1 二进制:10 + 11 = 1 第三次循环: 1 ^ 4 = 5 二进制:1 + 100 = 101 第四次循环: 5 ^ 3 = 6 二进制:101 + 11 = 110 第五次循环: 6 ^ 2 = 4 二进制:110 + 10 = 100 复制代码
以上所述就是小编给大家介绍的《LeetCode之只出现一次的数字-Swift》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- leetcode136. 只出现一次数字
- 找出数组中第 k 大的数字及其出现次数
- LeetCode 137.只出现一次的数字 II
- 【Leetcode】137.只出现一次的数字 II
- [剑指offer题解][Java]数组中出现次数超过一半的数字
- LeetCode 136:只出现一次的数字 Single Number
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Scalable Internet Architectures
Theo Schlossnagle / Sams Publishing / 2006-7-31 / USD 49.99
As a developer, you are aware of the increasing concern amongst developers and site architects that websites be able to handle the vast number of visitors that flood the Internet on a daily basis. Sc......一起来看看 《Scalable Internet Architectures》 这本书的介绍吧!