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




  

相关话题

  为什么计算机无法精确计算小数? 
  linux创建的硬链接为什么不占用磁盘空间? 
  所有人都劝退机械,然后又看到大部分人都回答计算机35岁危机严重,大家怎么看? 
  如果反百度的趋势不断持续,哪个搜索引擎将会取代百度在大陆的地位? 
  编程应该纳入高考吗? 
  美剧《硅谷》第三季第一集神秘代码写的是什么? 
  大厂是如何只用一个公网IP对外提供服务的? 
  国外名校计算机女博士生的生活是怎样的? 
  大学四年如何成为世界级软件工程师? 
  华为年薪两百万「天才少年」:希望所学所用助华为渡过难关,你认为张霁能对华为有哪些贡献? 

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





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