- 博客(1)
- 收藏
- 关注
转载 记录一次关于位操作的腾讯面试题目
题目:一个整型数组里除了一个数字之外,其它的数字都出现了两次。请写程序找出这个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:由于题目要求时间复杂度为O(n),所以先排序然后比较相邻数字是否相同的思路被排除。 空间复杂度是O(1),辅助空间被限制,所以hash表的思路也被排除。 那么这个题的突破口在哪里呢?注意这个数组的特殊性:其它数字都出现了两次,只有一个数出现了一次。可以想到运用异或运算,任何一个数字异或它自己都等于0。 如果我们从头到尾依次异或数组中的每一个数,那么最终的结果
2021-03-25 15:34:11 165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人