记 dotamax 面试第一题

本文记录了一次面试中的题目,该题目要求找出数组中唯一出现一次的数值。作者首先分享了面试感受,然后详细解析了问题思路,包括如何通过异或操作解决这一问题。文章提供了Python实现代码,并讨论了处理存在两个只出现一次的元素的情况,通过拆分数组来找到这两个元素。最后,作者表达了对数学和学习的感慨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

今天接到了一个面试,面试官鑫哥声音很好听,人也很好,是我目前见到的所有面试官中最好的一位啦。

可能还是知识面比较窄,第一个问题就把我给问倒了。一是太紧张,二是本身能力可能也没那么强,所以第一题没能想出来。面试完后,心里还是坠着一个石头似得,就一个想法,把这个问题搞明白,实现了。

于是下午,着手实现了一下,在此做个笔记,希望对后来人能有所帮助。

正文

这道题的内容是这样的:

给一个数组,数组中只有一个元素出现了仅仅一次,其他元素都是出现了两次。请用空间复杂度为O(1)和时间复杂度为O(n)的算法找出这个数。

说实话,我第一反应就是:“尴尬,这下完蛋了”。肯定不是正规思路了。然后就想啊想啊,最后勇于向鑫哥承认,这道题我确实没有什么好的办法。虽然很挫败,但是最起码我很诚实嘛。

def find(array)</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泰 戈 尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值