社区
数据结构与算法
帖子详情
创新工场一道算法题
seqingzi
2011-09-16 09:33:27
条件:两组数目相同的石头,a1,a2,a3...an;b1,b2,b3...bn,其中a1 != a2 != a3 != ... != an,b1 != b2 != b3 != ... != bn;对于每一个ai ,均能找到一个bj满足 ai == bj.
问题:找到每一组对应的ai = bj.
目前只想到用快排,复杂度O(nlgn)
求更好的解法
...全文
205
12
打赏
收藏
创新工场一道算法题
条件:两组数目相同的石头,a1,a2,a3...an;b1,b2,b3...bn,其中a1 != a2 != a3 != ... != an,b1 != b2 != b3 != ... != bn;对于每一个ai ,均能找到一个bj满足 ai == bj. 问题:找到每一组对应的ai = bj. 目前只想到用快排,复杂度O(nlgn) 求更好的解法
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fairywell
2011-09-18
打赏
举报
回复
[Quote=引用 7 楼 seqingzi 的回复:]
怎么只有说排序的.
有没有从分治法方面想一个更好的.
[/Quote]
有戏~~ :)
seqingzi
2011-09-18
打赏
举报
回复
果然还是要学好数学...
[Quote=引用 8 楼 litaoye 的回复:]
lz不用多想了,既然是用天平,排序就可以了,可以用信息论求下界log(3,n!) = O(n*log(n))
引用 7 楼 seqingzi 的回复:
怎么只有说排序的.
有没有从分治法方面想一个更好的.
[/Quote]
绿色夹克衫
2011-09-18
打赏
举报
回复
lz不用多想了,既然是用天平,排序就可以了,可以用信息论求下界log(3,n!) = O(n*log(n))
[Quote=引用 7 楼 seqingzi 的回复:]
怎么只有说排序的.
有没有从分治法方面想一个更好的.
[/Quote]
tswwz
2011-09-18
打赏
举报
回复
上面是比较笨得方法时间复杂度是n2。
如果排序的话时间复杂度是nlogn。
tswwz
2011-09-18
打赏
举报
回复
用天平的话可以这样,先把a组所有石头和b组所有石头各放在天平两边。
按照题目给出的条件,这时候天平必然是平衡的。
这时从a组哪掉一个石头,那么天平就不平衡了,一个一个的尝试从b组哪掉一个石头,当天平平衡了说明从a组拿掉的石头和b组拿掉的石头重量是相同的。
重复上面的动作,就可以找出每一组ai==bj的石头了。
fairywell
2011-09-17
打赏
举报
回复
插入排序就可以了,复杂度不错的
桶排序呢?
seqingzi
2011-09-17
打赏
举报
回复
怎么只有说排序的.
有没有从分治法方面想一个更好的.
nkorange
2011-09-17
打赏
举报
回复
归并排序,n*logn。快速排序不能保证一定是n*logn。
如果天平有砝码的话,可以用桶排序。
seqingzi
2011-09-16
打赏
举报
回复
就算石头质量已知,基数排序也无法实现.基数排序要求数必须是整型或者字符型,实数无法实现.
icessl
2011-09-16
打赏
举报
回复
如果 a1,a2,...,an 和 b1,b2,...bn 均为正整数,且它们的最大值不大于n,则可以用"基数排序".
算法如下:
STEP1: 令 R=max(a1,a2,...,an} // 该步耗时 O(n)
STEP2: 开设数组 A[0..R],把它们清零 // 该步耗时 O(R), 又因 R<=n,所以该步耗时 O(n)
STEP3: for (i=1;i<=n;i++) A[ai]=i; // 该步耗时 O(n)
STEP4: 开设数组 B[0..R],把它们清零 // 该步耗时 O(n)
STEP5: for (i=1;i<=n;i++) B[bi]=i; // 该步耗时 O(n)
STEP6: for (i=0;i<=R;i++)
if (A[i]!=0 && B[i]!=0) 输出 A[i]和B[i] // 该步耗时 O(n)
所以,总耗时O(n)
seqingzi
2011-09-16
打赏
举报
回复
忘了说了,只能用天平比较.质量未知
lzc52151
2011-09-16
打赏
举报
回复
哈希。。。。。。
SCRUM敏捷开发视频教程
SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。嘉宾介绍:张传波 1.
创新
工场
创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程
创新
工场
2014武汉站
一道
算法
题
创新
工场
2014笔试武汉站 声明:这是
创新
工场
2014武汉站的笔试
题
,是9月16晚考的,我也参加了,发挥不好没有拿到面试通知,极度伤心,但愈挫愈勇~
创新
工场
笔试小记(
创新
工厂
算法
笔试
题
)
创新
工场
几道笔试
题
,欢迎大家讨论。1 基本情况笔试
题
量很小,答
题
时间1个小时。 1道填空
题
,9道左右选择
题
,最后
一道
编程
题
。2 几个
题
目第一
题
: C代码 int f(int x) { int c = 0; while(x!=0) { x = x & (x
创新
工场
招募
算法
、大数据、后端开发工程师啦~
创新
工场
人工智能工程院简介:
创新
工场
人工智能工程院由李开复博士亲自创办和领导,专门聚焦人工智能前沿科技的项目研发与孵化。在过去的20多年里,李开复博士成功创办过三个科学家与工程师的“黄埔军校”:微软亚洲研究院,Google中国以及
创新
工场
第一批孵化企业。今天,人工智能大潮席卷全球,
创新
工场
...
进制转化
算法
(C++实现)——
创新
工场
笔试归来
10月17号晚上参加了
创新
工场
的校园招聘笔试,
题
目很少,时间是一个小时。很多
题
目像是智力测验,想我这种反应慢的人实在是不适合参加
创新
工厂的考试。最后
一道
题
是
一道
编程
题
。我之前没写过类似的程序,答得很差。回到宿舍后,我将这道
题
做了出来与大家分享。想加入
创新
工场
的青年可以参考一下。
题
目大致是这样的:编程实现将十进制的整数转化成任意进制的整数,用户输入一个十进制数R和想要转化的进制数X,程序输出转换后的X进制的整数。
例如:
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章