分类: [JAVA]

算法初级——数组中只出现一次的数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 知识点:异或操作,任何数与本身异或等于0 异或就是同为0,异为1. 位运算 右移一位 判断两个只出现了一次的数字,先将所有元素异或操作,结果为两个只出现一次的的元素异或的结果,找出sum的第一位为1的数字,(两个不一样的数字一定有某些位置数字不一样,找出第一个不一样的数字),以这个位置将元素分为两部分,一部分该位置是一种,另一部分是另一种,完成两部分的分隔,此时每一部分包含一个单次元素,将两部分分别全部异或操 ......