只出现一次的数字 LeetCode136
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
要求:你的算法需要线性时间复杂度
最近在推文上看到这道题还蛮多人分享的,还是一道比较高频的算法题,所以咱也来凑凑热闹,如果你要是还没做过,真的可以去做做。
提交链接:
给你点机会,不看题解,先写一下?
还是直接看题解?
相信你已经做出来了。下面分享下当时我做这道题的思路,最后的思路,我一开始还真没想到,还是看了下题解,阿巴阿巴…
思路
首先,这肯定是先想到暴力呀,没有什么是两层for解决不了, 直接冲
果然,过了
一看,不对劲,怎么才5%;
优化
我们可以采用哈希表记录每个元素出现的次数,应该会比暴力快很多,再冲,又过啦
好像哈希表也是不太行,最终采用异或大法,成功在线性时间复杂度下查找出该元素
总结
分享一道题,最近看到的频率比较高,就写了一下,我觉得代码应该不用贴,应该大家都会写的…