由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问一个链表方面的算法问题 (转载)
相关主题
g家的坐地铁那道题目,过不了small test一道C面试题
发一道面试题分享一个链表相关的面试题
怎么返回单链表里面的环的前一个节点的位置?链表复制问题
问一个链表的问题移除链表中重复的节点,不许有BUFFER的。
讨论 找单链表倒数m的节点链表中每三个数逆转的题?
hash_map 的遍历问题两道跟circular linkedlist相关的题。
再问道题目贡献M家题(在线服务组,英文自己翻译)
G家on site问一道题目问两道Career Cup 150上的linked list题,谢谢!
相关话题的讨论汇总
话题: 链表话题: cell话题: hash话题: 节点话题: 算法
进入JobHunting版参与讨论
1 (共1页)
j*****n
发帖数: 1545
1
【 以下文字转载自 CS 讨论区 】
发信人: jetchen (飞机), 信区: CS
标 题: 问一个链表方面的算法问题
发信站: BBS 未名空间站 (Sun Jan 24 00:08:52 2010, 美东)
小弟EE的,不是cs科班出生,不知道这个问题描述的准不准确:
有一个循环链表 a->d->b->c->e->....->a
每一个节点都是一个整数,且不重复(除了首尾节点外)。
现在这个链表被拆断开了,每2个相邻节点被存在一个cell里面, 但这些cell不是有序
的。 就是说链表被拆成了 a->d, c->e,...,d->b,...,b->c,....
我想重新把链表建立起来,应该用什么样的算法?
谢谢.
m*****f
发帖数: 1243
2
假设cell为x1,x2,x3,x4...
, ...
, ...
...
把这些pair基于第二个element排序, 每个整数出现了两次, 且在结果中相邻, 遍历结
果就可知哪些cell头尾相连
O(nlogn) time, O(n) space
j*****n
发帖数: 1545
3

这个想法不错,挺简单的。效率有多高阿?
m*****f
发帖数: 1243
4
如果是naive matrix, O(n^2) space O(V^3) time (F-W algorithm? not sure)
如果采用了sparse matrix储存, 好像可以到linear time.

【在 j*****n 的大作中提到】
:
: 这个想法不错,挺简单的。效率有多高阿?

j*****n
发帖数: 1545
5

没怎么看明白, x1_start,x1_end, 这些是什么阿? 是基于哪个element排序阿?
望指教。 谢谢

【在 m*****f 的大作中提到】
: 假设cell为x1,x2,x3,x4...
: , ...
: , ...
: ...
: 把这些pair基于第二个element排序, 每个整数出现了两次, 且在结果中相邻, 遍历结
: 果就可知哪些cell头尾相连
: O(nlogn) time, O(n) space

h**k
发帖数: 3368
6
V^3怎么出来的?

【在 m*****f 的大作中提到】
: 如果是naive matrix, O(n^2) space O(V^3) time (F-W algorithm? not sure)
: 如果采用了sparse matrix储存, 好像可以到linear time.

j*****n
发帖数: 1545
7

恩,发现cs的这些算法理论还真有用。当初还是该学cs。

【在 m*****f 的大作中提到】
: 如果是naive matrix, O(n^2) space O(V^3) time (F-W algorithm? not sure)
: 如果采用了sparse matrix储存, 好像可以到linear time.

m*****f
发帖数: 1243
8
Floyd Warshall算法, brute force解决贝

【在 h**k 的大作中提到】
: V^3怎么出来的?
m*****f
发帖数: 1243
9
x1_start就是指x1 cell 的start 整数是a, 用来做个标记而已
基于整数排序

【在 j*****n 的大作中提到】
:
: 恩,发现cs的这些算法理论还真有用。当初还是该学cs。

h**k
发帖数: 3368
10
不用这么复杂吧,每个cell不是已经记录了下个点的信息么?直接找到下个点不就行了
,使用hash table或者建个数组。

【在 m*****f 的大作中提到】
: Floyd Warshall算法, brute force解决贝
相关主题
hash_map 的遍历问题一道C面试题
再问道题目分享一个链表相关的面试题
G家on site问一道题目链表复制问题
进入JobHunting版参与讨论
V**0
发帖数: 889
11
觉得是

【在 h**k 的大作中提到】
: 不用这么复杂吧,每个cell不是已经记录了下个点的信息么?直接找到下个点不就行了
: ,使用hash table或者建个数组。

g*******y
发帖数: 1930
12
我也觉得不用那么复杂hash就可以了吧?

【在 h**k 的大作中提到】
: 不用这么复杂吧,每个cell不是已经记录了下个点的信息么?直接找到下个点不就行了
: ,使用hash table或者建个数组。

j*****n
发帖数: 1545
13
我都忘了hash是怎么回事了,谢谢大家。回去看看书
j*****n
发帖数: 1545
14
再问个问题,
如果每个cell里面是没有方向的,只考虑连接情况
就是说cell可以是这样的, a-d, c-e, c-b,...,d-b,....
我想重新把链表建立起来,对应的链表还是 adbce....
还能用hash么?
谢谢
h**k
发帖数: 3368
15
能,只要你cell里记录的顺序是按照实际链表指向的顺序记录的。

【在 j*****n 的大作中提到】
: 再问个问题,
: 如果每个cell里面是没有方向的,只考虑连接情况
: 就是说cell可以是这样的, a-d, c-e, c-b,...,d-b,....
: 我想重新把链表建立起来,对应的链表还是 adbce....
: 还能用hash么?
: 谢谢

j*****n
发帖数: 1545
16

哦 就是说如果我只记录 c和a 是连起来的, 但不记录是从c到a还是从a到c, 就不能
用hash了?

【在 h**k 的大作中提到】
: 能,只要你cell里记录的顺序是按照实际链表指向的顺序记录的。
h**k
发帖数: 3368
17
可以,稍微复杂一些。每个cell要分别按照其中的node存一次。比如cell: c-a,既要存
到node c这一项,也要存到node a这一项。而且重构的链表可能和原来的方向相反。

【在 j*****n 的大作中提到】
:
: 哦 就是说如果我只记录 c和a 是连起来的, 但不记录是从c到a还是从a到c, 就不能
: 用hash了?

j*****n
发帖数: 1545
18
我想了这个简单办法,
假设 节点是从 0-10,
建一个n*2的矩阵, 先遍历所有cell,假设i-j在一个cell里, 则把矩阵的第i行的第0或
者第1列(看哪列是空的)置成j. 这样就把这个矩阵都能填满.
然后把这个矩阵遍历一遍, 就能把这个链表建立起来了。
比如 链表是 0-5-2-3-9,... 我先把 0 和 5 push到link里面去, 然后去看matrix第5
行, 把非0的那个entry 2找出来,push 到 link里面去; 然后去看matrix第2行把非5
的那个entry 3 找出来, .....
这个办法算有效的吗?
Z*****Z
发帖数: 723
19
一个是给了一组《id,parent id》对,如何重构出原来的树。
一个是给了一组《id,parent id》对,并且已知构建出来的一定是个链表,怎么做。

【在 j*****n 的大作中提到】
: 【 以下文字转载自 CS 讨论区 】
: 发信人: jetchen (飞机), 信区: CS
: 标 题: 问一个链表方面的算法问题
: 发信站: BBS 未名空间站 (Sun Jan 24 00:08:52 2010, 美东)
: 小弟EE的,不是cs科班出生,不知道这个问题描述的准不准确:
: 有一个循环链表 a->d->b->c->e->....->a
: 每一个节点都是一个整数,且不重复(除了首尾节点外)。
: 现在这个链表被拆断开了,每2个相邻节点被存在一个cell里面, 但这些cell不是有序
: 的。 就是说链表被拆成了 a->d, c->e,...,d->b,...,b->c,....
: 我想重新把链表建立起来,应该用什么样的算法?

Z*****Z
发帖数: 723
20
自顶一下!

【在 Z*****Z 的大作中提到】
: 一个是给了一组《id,parent id》对,如何重构出原来的树。
: 一个是给了一组《id,parent id》对,并且已知构建出来的一定是个链表,怎么做。

相关主题
移除链表中重复的节点,不许有BUFFER的。贡献M家题(在线服务组,英文自己翻译)
链表中每三个数逆转的题?问两道Career Cup 150上的linked list题,谢谢!
两道跟circular linkedlist相关的题。LinkedIn面经
进入JobHunting版参与讨论
l*****a
发帖数: 14598
21
for the first one,how do u judge whether it is left node or right node?
for the second one,i think it is just the issue of this post

【在 Z*****Z 的大作中提到】
: 自顶一下!
Z*****Z
发帖数: 723
22
嗯,这个原题好像表述也不是很清楚。比如考虑最general的情况,如果不是二叉树呢?

【在 l*****a 的大作中提到】
: for the first one,how do u judge whether it is left node or right node?
: for the second one,i think it is just the issue of this post

p********7
发帖数: 549
23
这个题用hash可以实现复杂度O(N).
比如 a-d c-e d-b b-c 分别存在数组input[N],hash记录出现字母的位置
a b c d e f
0 0
1 1
2 2
如果字母出现过了,就连接2个input里面的元素
1 (共1页)
进入JobHunting版参与讨论
相关主题
问两道Career Cup 150上的linked list题,谢谢!讨论 找单链表倒数m的节点
LinkedIn面经hash_map 的遍历问题
请教linkedin一个面试题再问道题目
[讨论] 算法超级大总结-- 链表 近千行代码总结,欢迎大家进来补充G家on site问一道题目
g家的坐地铁那道题目,过不了small test一道C面试题
发一道面试题分享一个链表相关的面试题
怎么返回单链表里面的环的前一个节点的位置?链表复制问题
问一个链表的问题移除链表中重复的节点,不许有BUFFER的。
相关话题的讨论汇总
话题: 链表话题: cell话题: hash话题: 节点话题: 算法