摘要:
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n) ,空间复杂度是 O(1) 。思路:这是个比较新颖的题,经典的题是“给一个数组里面只有一个数字出现一次,其余的数都出现两次,把这个唯一的数找出来”,利用OXR操作的特性很容易把它找出来。即,抑或操作,相同为0,不同为1(0 ^ x) == x(x ^ x) == 0本题思路:抑或所有数,得到的是要找的数num1 num2的抑或值。由于这两个数是不相等的,那么这个抑或值一定不为0,就找到为1的位是那个,把原数组根据这个位分成两组。每组抑或得到的值即为所求的两个不同的数。代码 阅读全文
posted @ 2013-04-01 15:05 俊介三在前进 阅读(214) 评论(0) 推荐(0)
浙公网安备 33010602011771号