百科问答小站 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)起来就行,得到的结果就是那个唯一的不重复的元素。




  

相关话题

  如何评价清华大学电子系大一暑假小学期总共 9 个学时的 Python 课程大作业难度? 
  TikTok、抖音为什会成功,以至于微信、Google、Facebook 等大厂在短视频领域都折戟? 
  中国除了军力、金融、计算机相关方面,还有哪里不如美国么? 
  为什么很多机械设备出现故障后,敲一敲就莫名其妙地好了? 
  一个N*N的矩阵,取值为0或1,有什么好的算法判断一行或一列全为1啊? 
  超威半导体(AMD)的超线程技术和英特尔(Intel)的超线程技术有差别吗? 
  最大似然估计和最小二乘法怎么理解? 
  为什么很多计算机系的学生一点不会电脑的基本操作? 
  数学对计算机专业重要吗? 
  如何评价潘石屹说python是最接近日常语言的编程语言? 

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





© 2025-04-11 - tinynew.org. All Rights Reserved.
© 2025-04-11 - tinynew.org. 保留所有权利