由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - G家这道题怎么做的?
相关主题
问一道google的面试题三道 Amazon Onsite Coding 题 (转载)
问一道算法题请教一个题目
请教一道面试题低频题小节
FB的这道题怎么答?这道题难不难?
问个小算法a 面经
请教一个排序的问题G onsite面经
问一个题,求相同元素最多的两个数组ebay search组面经,估计要挂
请教下leetcode Permutations II不用暴力,这道题有没有优化解
相关话题的讨论汇总
话题: len话题: idx话题: used话题: 道题话题: arr
进入JobHunting版参与讨论
1 (共1页)
f********a
发帖数: 165
1
数组: index 0 1 2 3 4
value 3 2 1 4 0
从任意个元素开始,利用值来找到下一个元素的位置,找出最大的环。比如从
第一个元素开始:
0 -> 3 -> 4 -> 0
h****y
发帖数: 137
2
用union-find吧?

【在 f********a 的大作中提到】
: 数组: index 0 1 2 3 4
: value 3 2 1 4 0
: 从任意个元素开始,利用值来找到下一个元素的位置,找出最大的环。比如从
: 第一个元素开始:
: 0 -> 3 -> 4 -> 0

d***n
发帖数: 832
3
最大环怎么定义?
0 3 4 0
1 2 1
2 1 2
3 4 0 3
4 0 3 4
p*u
发帖数: 136
4
直接类似dfs的做法就可以了吧,记录下哪些节点已经被访问了的。找到环的时候,记
录下当前dfs的深度就是环的大小。取个最大的

【在 f********a 的大作中提到】
: 数组: index 0 1 2 3 4
: value 3 2 1 4 0
: 从任意个元素开始,利用值来找到下一个元素的位置,找出最大的环。比如从
: 第一个元素开始:
: 0 -> 3 -> 4 -> 0

w*******e
发帖数: 285
5
这就是有向图里面找最大的强连通分量吧。

【在 p*u 的大作中提到】
: 直接类似dfs的做法就可以了吧,记录下哪些节点已经被访问了的。找到环的时候,记
: 录下当前dfs的深度就是环的大小。取个最大的

n****e
发帖数: 678
6
同感

【在 p*u 的大作中提到】
: 直接类似dfs的做法就可以了吧,记录下哪些节点已经被访问了的。找到环的时候,记
: 录下当前dfs的深度就是环的大小。取个最大的

A***o
发帖数: 358
7
这个有点像代数里面的cyclic group,想清楚了在这种特殊情况下怎么测环,就几行
code。

【在 f********a 的大作中提到】
: 数组: index 0 1 2 3 4
: value 3 2 1 4 0
: 从任意个元素开始,利用值来找到下一个元素的位置,找出最大的环。比如从
: 第一个元素开始:
: 0 -> 3 -> 4 -> 0

i********s
发帖数: 22
8
value是0-(n-1)之间的么?
那直接dfs就可以了,O(N)复杂度
vector used(n, false);
for (int i = 0; i < n; ++i) {
if (!used[i]) {
dfs(i, , i, arr, used, len);
if (len > max_len) {
max = len;
}
}
}
void dfs(int start, int idx, int[] arr, vector& used, int &len) {
used[idx] = true;
len ++;
if (!used[arr[idx]]) {
dfs(start, arr[idx], arr, used, len);
} else {
assert(start == idx)
}

}
1 (共1页)
进入JobHunting版参与讨论
相关主题
不用暴力,这道题有没有优化解问个小算法
今天灌水不踊跃,出道题吧请教一个排序的问题
Splunk面经 (转载)问一个题,求相同元素最多的两个数组
这道题讨论过没有?请教下leetcode Permutations II
问一道google的面试题三道 Amazon Onsite Coding 题 (转载)
问一道算法题请教一个题目
请教一道面试题低频题小节
FB的这道题怎么答?这道题难不难?
相关话题的讨论汇总
话题: len话题: idx话题: used话题: 道题话题: arr