饿了么三面

两个大文件,分别存放了很多数字,怎么找到两个文件所有相同的数字
全部评论
佬,请问现在有oc了的吗
点赞 回复 分享
发布于 04-08 23:26 黑龙江
首先,可以用 bit map 的方式来表示数出现的情况。具体地说,是申请一个长度为4 294 967295x2 的bit 类型的数组bitArr,用2 个位置表示一个数出现的词频,1B 占用8 个bit,所以长度为4 294 967 295x2 的 bit 类型的数组占用 1GB 空间。 遍历这 头一个文件,如果初次遇到num,就把bitArr[num*2 +1]和 bitArr[num*2]设置为01, 遍历第二个文件,如果第二次遇到 num,就把 bitArr[num*2+1]和bitArr[num*2]设置为 11 以后再遇到 num,发现此时 bitArr[num*2+1]和 bitArr[num*2]已经被设置为11,就不再做任何设置。 遍历完成后,再依次遍历 bitArr,如果发现bitArr[i*2+1]和bitArr[i*2]设置为11的情况,那么i就是出现了两次的数。
点赞 回复 分享
发布于 04-08 11:47 天津
海量数据统计问题吗
点赞 回复 分享
发布于 04-08 11:43 天津

相关推荐

#面经##饿了么#暑期实习,4.16一面,面完即挂项目动态线程池项目主要的内容做了什么为什么需要动态修改线程池的参数,业务场景是什么动态修改主要修改了哪些参数Jdk原生的threadpool有哪几种实现coresize和maxsize的含义什么时候有效线程突破coresize怎么实现修改参数,Set方法修改之后会立马生效吗?executor的set方法好像修改之后不会立马起作用?不同的业务需求不同,比如有些适合singleThreadPool 有些需要fixedThreadPool, 这个组件怎么来适应他们的情况Java线程和操作系统线程是什么关系,为什么是一对一的关系如果是一对一的关系,那每次使用线程都需要去操作系统那里创建不是很费时间吗线程的生命周期调用start()方法后,jvm做了什么Java怎么解决并发问题Synchronized的实现原理,修时普通私有方法和静态方法有什么区别锁升级怎么实现(偏向锁、轻量级锁和重量级锁)动态线程池项目具体的应用场景最大线程数量怎么设置,根据不同的任务场景(计算密集型)监控线程池的状态包括哪些? 哪些指标可以用来判断线程池的运行状态是否良好怎么计算任务等待的时间定时打印功能是怎么实现的,轮询?调用哪个方法?介绍第二个项目,主要做了哪些功能订单类设计到哪些表,表怎么设计怎么进行防重复提交ID是怎么做的讲一下mvc, 为什么要划分为三层 项目中哪些地方利用到IOC控制层、业务层和持久层哪一个需要用单例模式这个项目的核心挑战答了并发访问,并发访问跟前面防重复提交不是矛盾了吗,怎么解决了解Java过数据结构吗ArrayList和LinkedList的区别,实现堆栈用哪个效率比较高反问,业务营销部门,券和券的核销
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

更多
牛客网
牛客企业服务