找出数组中唯一出现一次的数字

只出现一次的数字 LeetCode136

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

要求:你的算法需要线性时间复杂度

最近在推文上看到这道题还蛮多人分享的,还是一道比较高频的算法题,所以咱也来凑凑热闹,如果你要是还没做过,真的可以去做做。

提交链接:

给你点机会,不看题解,先写一下?

还是直接看题解?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tNLsBS8d-1649603630115)(C:\Users\大勇\AppData\Roaming\Typora\typora-user-images\image-20220410225755236.png)]

相信你已经做出来了。下面分享下当时我做这道题的思路,最后的思路,我一开始还真没想到,还是看了下题解,阿巴阿巴…

思路

首先,这肯定是先想到暴力呀,没有什么是两层for解决不了, 直接冲

果然,过了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hxdigITN-1649603630117)(C:\Users\大勇\AppData\Roaming\Typora\typora-user-images\image-20220410230351438.png)]

一看,不对劲,怎么才5%;

优化

我们可以采用哈希表记录每个元素出现的次数,应该会比暴力快很多,再冲,又过啦

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ZXzXg3Z-1649603630118)(C:\Users\大勇\AppData\Roaming\Typora\typora-user-images\image-20220410230802325.png)]

好像哈希表也是不太行,最终采用异或大法,成功在线性时间复杂度下查找出该元素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udmcfTwz-1649603630119)(C:\Users\大勇\AppData\Roaming\Typora\typora-user-images\image-20220410230942708.png)]

总结

分享一道题,最近看到的频率比较高,就写了一下,我觉得代码应该不用贴,应该大家都会写的…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值