猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
面试中遇到的一道算法题
有一堆数,其中有两个数出现了一次,其他的数都出现了两次。怎样将这两个只出现一次的数找出来?
排除打表,统计外有什么更为高效的方法。
繁华开满天机
浏览 810
回答 3
3回答
慕姐4208626
1先把所有数字 做 异或操作 得到数字 S2 从高到低位检查 S 的 bit 找到第一个 1 3 检查所有数字 根据 这个bit位是1 还是 0 把 原来的数组划分为 两个4 对每个数组 ,把数组内的数字做 异或操作。分别得到数字 A ,B5 数字 A ,B 即为所求时间复杂度 O(n)空间复杂度 O(1)
0
0
0
冉冉说
应该可以用桶排序
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
面试
关于前端面试题:页面出现空白,怎么排查定位问题?
3 回答
关于面试题,如何快速找出文件(大文件无法一次性读取)中的重复项?
0 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续