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




  

相关话题

  为什么有些人宁愿花费很多时间去自己手工配置Python环境, 也不用Anaconda? 
  一篇化生环材Nature大子刊和一名985毕业程序员一年工作产出相比,哪个更重要? 
  为什么 Windows 上还没有普及 64 位的软件? 
  晾一件刚洗的衣服,有可能计算出每滴水落地的时间间隔吗? 
  为什么不同的死循环占用资源不同? 
  如何不依赖任何外界现成软件和其他计算机设备运行没安装操作系统的电脑? 
  电脑关机再开黑屏2分钟才能看到主板LOGO,重启或者是reset就一切正常。请问是什么原因,如何修复? 
  计算机本科能进互联网大厂的话,还有必要读研究生吗? 
  高三毕业生的选专业问题,有支持的吗? 
  现在越来越多大学生转cs,那计算机专业会不会供大于求? 

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





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