面试官:如何迅速找出数组中重复的数字?

[复制链接]
楼主: fundes

18万

主题

38万

帖子

10305万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
103051470
 楼主| 发表于 2021-5-10 20:35:41 | 显示全部楼层
下面有大哥说100万行怎么办?用个取巧的方法,数据写入数据库,读出的时候使用降序或者升序,不再使用n-1的循环(浪费资源)使用while判断循环语句。
回复

使用道具 举报

18万

主题

38万

帖子

10305万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
103051470
 楼主| 发表于 2021-5-10 20:39:58 | 显示全部楼层
O(N)的实现方法是创造一个freq(n)的vector,开始都是-1 先跑一遍input 算出freq 在跑的时候某个地方是等于0的话就可以返回了
回复

使用道具 举报

18万

主题

38万

帖子

10305万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
103051470
 楼主| 发表于 2021-5-10 20:44:15 | 显示全部楼层
你搞的太复杂了,hashset判重就可以
回复

使用道具 举报

18万

主题

38万

帖子

10305万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
103051470
 楼主| 发表于 2021-5-10 20:48:32 | 显示全部楼层
不排序,直接读取数字放map,数字当key,出现次数当value,都不需要完整遍历就能拿到重复球
回复

使用道具 举报

18万

主题

38万

帖子

10305万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
103051470
 楼主| 发表于 2021-5-10 20:52:49 | 显示全部楼层
如果数组长度100万个,那么这个双重循环的效率非常低,用hashset更快些!
回复

使用道具 举报

12
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐
Copyright   ©2015-2016  蒙特利尔精英网-新加园  技术支持:金子路传媒