找出数组中唯一出现一次的数字
只出现一次的数字 LeetCode136
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
要求:你的算法需要线性时间复杂度
最近在推文上看到这道题还蛮多人分享的,还是一道比较高频的算法题,所以咱也来凑凑热闹,如果你要是还没做过,真的可以去做做。
提交链接:
给你点机会,不看题解,先写一下?
还是直接看题解?
相信你已经做出来了。下面分享下当时我做这道题的思路,最后的思路,我一开始还真没想到,还是看了下题解,阿巴阿巴…
思路
首先,这肯定是先想到暴力呀,没有什么是两层for解决不了, 直接冲
果然,过了
一看,不对劲,怎么才5%;
优化
我们可以采用哈希表记录每个元素出现的次数,应该会比暴力快很多,再冲,又过啦
好像哈希表也是不太行,最终采用异或大法,成功在线性时间复杂度下查找出该元素
总结
分享一道题,最近看到的频率比较高,就写了一下,我觉得代码应该不用贴,应该大家都会写的…
本文作者:Leo-coding
本文链接:https://www.cnblogs.com/Leo-coding/p/17267947.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
标签:
算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步