标签:相同 font 不同 数组 inf 包含 code 区分 这一
扩展:数组中只出现一次的两个数字
1、在上述题目中,数组中所有数字异或得到单独数字;那么在这个题目中,数组中所有数字异或得到这两个单独数字的异或;
2、我们只需要把数组中所有数字分成两组,并且每一组中的仅包含一个单独数字,那么就把这个问题转化为基础问题了,比如:
数组:[a,b,c,d,a,b]转换为[a,a,c],[b,b,d],或者是[a,a,d],[b,b,c]。
3、x是两个不相同数字的异或,那么x必然不是0,我们只要找到x为1的某一位,比如第n位,或者m位,只要是x在这一位上为1。那么在这一位上,c,d是不同的,异或运算才得到1,否则就是0了。,这就是区分c,d的关键
4、遍历数组,当第n位为1的时,归位一组,第n位不为1,归为另一组。这样就得到了两个组,将问题成功转换为夹出问题
标签:相同 font 不同 数组 inf 包含 code 区分 这一
原文地址:https://www.cnblogs.com/yangyanfen/p/11800321.html