2013年6月20日

摘要: 在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。例如: a = {1,3,7,9,5,9,4,3,6,1,7},输出4或5或6C/C++:理解: 在这里找出出现一次的数是根据flips=lowbit(a^b)^lowbit(a^c)^lowbit(b^c),这是为什么呢,我们可以用图形化的方式来理解这个问题。// lowbit表示的是某个数从右往左扫描第一次出现1的位置int lowbit(int x){ return x&~(x-1);}void find(int* a , int n 阅读全文
posted @ 2013-06-20 10:25 dyc0113 阅读(500) 评论(0) 推荐(0) 编辑

导航