百科问答小站 logo
百科问答小站 font logo



腾讯面试题,如何寻找一个数组里面唯一不重复的元素?要求时间复杂度o(n)和空间复杂度o(1)? 第1页

  

user avatar   zjc-7-76 网友的相关建议: 
      

直接求所有元素的异或和就行

大致代码:

s=0

for i=1 to n{

s = s xor a[i]

}

return s

(xor在c++里运算符是^)

原理说明:对于任何数x,0 xor x=x且x xor x=0


user avatar   mo-yu-xiao-xuan 网友的相关建议: 
      

如果题目里说的重复指的是恰好出现两次,那么直接O(n)把数组里的元素都异或(xor)起来就行,得到的结果就是那个唯一的不重复的元素。




  

相关话题

  1pb硬盘在未来10年内有可能普及吗? 
  大学专业没有选择计算机是不是意味着这辈子完了,人生已经走到头了? 
  如何看待网传字节跳动 28 岁图像算法工程师心梗猝死?还有 30 年房贷没还完,可以退房退款吗? 
  一堆n维空间的由m个点组成的点集,m大于n,我们只知道它们之间的距离,能否判断所在空间的维数? 
  一个算法面试题,怎么写? 
  清北毕业生工资真的这么低吗? 
  现在学计算机,以后想跨专业去学习和从事芯片的工作,大神们有什么意见和建议呢? 
  哪些看似与图论无关的问题可用图论模型解决? 
  Python真的不适合游戏开发吗?游戏全都用像Python这种解释型语言写,对开发出的游戏有什么影响? 
  为什么欧洲分子生物实验室的DNA存储选择了三进制? 

前一个讨论
交换机各个端口之间的网速是否会被影响?
下一个讨论
中医黑认为西医是现代医学,那么是否认为西方经济学是现代经济学?





© 2024-05-12 - tinynew.org. All Rights Reserved.
© 2024-05-12 - tinynew.org. 保留所有权利