boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 多线程算sparse matrix connected components怎么做?
相关主题
Linked电面分享,挺好的题 应该已挂
一道面试题
leetcode的3sum的运行时间问题
3sum on LeetCode OJ
combination sum II
java 求助
leetcode 129
求个4sum的算法
word ladder ii 谁给个大oj不超时的?
LeetCode 的 4 sum 问题 如何用hash table做呢?
相关话题的讨论汇总
话题: list话题: integer话题: arraylist话题: path
进入JobHunting版参与讨论
1 (共1页)
s********t
发帖数: 142
1
A sparse matrix and find the connected components using multi threading
using all the cores.
execution time criteria 3 s => good, 2s =>great 700 ms => excellent
s********t
发帖数: 142
2
下面是单线程,而且图是adjacency list
public class Solution {
//5763 ms, method: bfs, 时间O(N + E),空间O(N)。
public List> connectedSet(ArrayList
nodes) {
List> res = new ArrayList<>();
List path = new ArrayList<>();
Set visited = new HashSet<>();
for (UndirectedGraphNode node : nodes) {
if (!visited.contains(node)) {
path.clear();
Queue queue = new LinkedList<>();
queue.offer(node);
visited.add(node);
path.add(node.label);
while (!queue.isEmpty()) {
UndirectedGraphNode p = queue.poll();
for (UndirectedGraphNode v : p.neighbors) {
if (!visited.contains(v)) {
visited.add(v);
queue.offer(v);
path.add(v.label);
}
}
}
Collections.sort(path);
res.add(new ArrayList(path));
}
}
return res;
}
//7451 ms, method: dfs, 时间O(N + E),空间O(N)
public List> connectedSet2(ArrayList
nodes) {
List> res = new ArrayList<>();
List path = new ArrayList<>();
Set visited = new HashSet<>();
for (UndirectedGraphNode p : nodes) {
if (!visited.contains(p)) {
dfs(p, visited, path);
Collections.sort(path);
res.add(new ArrayList(path));
path.clear();
}
}
return res;
}
private void dfs(UndirectedGraphNode p, Set visited
, List path) {
visited.add(p);
path.add(p.label);
for (UndirectedGraphNode v : p.neighbors) {
if (!visited.contains(v))
dfs(v, visited, path);
}
}
}
s********t
发帖数: 142
3
Nobody knows?
1 (共1页)
进入JobHunting版参与讨论
相关主题
LeetCode 的 4 sum 问题 如何用hash table做呢?
请问如何去除结果里面的重复
一道面试题和解法(求指点).
请教一下subset I 输出子集顺序问题
4sum o(n^2)超时
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。
如何避免permutation中的重复计数
permutationII ,如果不用hashset,用迭代的方法,如何防止重复
问个Java的HashSet.contains的问题
再上到题
相关话题的讨论汇总
话题: list话题: integer话题: arraylist话题: path