内容简介:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。本次题目可以采用异或(^)来解决。
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
示例
示例 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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
代码阅读方法与实践
斯平内利斯 / 赵学良 / 清华大学出版社 / 2004-03-01 / 45.00元
代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题......一起来看看 《代码阅读方法与实践》 这本书的介绍吧!