[leetcode/lintcode 题解] 微软面试题:不重复的两个数 算法 刷题解法

DanielZhao 14天前 37


给定一个数组 a[],其中除了2个数,别的数都出现了2次,找到不重复的2个数并返回。

在线评测地址: https://www.lintcode.com/problem/two-numbers-that-are-not-repeated/?utm_source=sc-xytsq-zq

Example 1:

Example 2:

【题解】

从头到尾依次异或数组中的每一个数字,得到两个只出现一次的数字的异或结果,在结果数字中找到第一个为1的位的位置,记为第N位,以第N位是不是1为标准把原数组中的数字分成两个子数组,第一个子数组中每个数字的第N位都为1,而第二个子数组的每个数字的第N位都为0。

更多语言代码参见:https://www.jiuzhang.com/solution/two-numbers-that-are-not-repeated/?utm_source=sc-xytsq-zq

最新回复 (0)
返回