由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode 上 wordladderII 求教
相关主题
Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?被G电面给毙了
微软有组在招new grad software engineer吗?word ladder 时间空间复杂度是多少, bfs 解的
word ladder ii 谁给个大oj不超时的?leetcode做伤心了
不明白leetcode OJ wordladder 2 总是 Time Limit ExceededSecond round phone interview with eBay
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。问个java hashcode的题
一道电面题,分享下, 这个题应该用哪几个data structure?[面试题求教]remove common phrases from each sentence
leetcode出了新题word ladder贡献G家电面面经
leetcode 129最近好几个trie的面试题,有人愿意分享一下trie到底怎么implement的吗?
相关话题的讨论汇总
话题: string话题: arraylist话题: set话题: s1话题: linkedlist
进入JobHunting版参与讨论
1 (共1页)
l*********d
发帖数: 78
1
尝试过许多解法,但老是 TLE. 有高人能帮忙看一下这一段代码吗?
基本上就是 double queue + backtracking,跟这里的http://blog.csdn.net/niaokedaoren/article/details/8884938
很相似。但是问题出在哪里呢?
提前谢谢了!
------------------------------------------------------------------------
import java.util.Map;
public class Solution {

public void fillPaths(String start, String cur, Map>
map,
ArrayList> result, LinkedList post
) {
post.addFirst(cur);
if (start.equals(cur)) {
result.add(new ArrayList(post));
} else {
for (String prev : map.get(cur)) {
fillPaths(start,prev,map,result,post);
}
}
post.removeFirst();
}
public ArrayList> findLadders(String start, String end
, HashSet dict) {
dict.add(start);
dict.add(end);
Map> visited = new HashMap>();
ArrayList> result = new ArrayList >>();
Queue next, current;
current = new LinkedList();
next = new LinkedList();
next.offer(start);
visited.put(start, new HashSet());
while (true) {
Queue temp = current;
current = next;
next = temp;
next.clear();
for (String n : current) dict.remove(n);
for (String s : current) {
for (int i = 0; i < s.length(); i++) {
StringBuilder sb = new StringBuilder(s);
for (char c = 'a'; c <= 'z'; c++) {
if (c == s.charAt(i)) continue;
sb.setCharAt(i, c);
String s1 = sb.toString();
if (dict.contains(s1)) {
next.add(s1);
Set set;
if (visited.containsKey(s1)) set = visited.get(
s1);
else set = new HashSet();
set.add(s);
visited.put(s1,set);
}
}
}
}

if (next.isEmpty()) return result;
if (next.contains(end)) break;
}
fillPaths(start,end,visited,result,new LinkedList());
return result;
}
------------------------------------------------------------------------
1 (共1页)
进入JobHunting版参与讨论
相关主题
最近好几个trie的面试题,有人愿意分享一下trie到底怎么implement的吗?WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。
问一个facebook的电面一道电面题,分享下, 这个题应该用哪几个data structure?
问一道A家的面试题leetcode出了新题word ladder
50行code能解决addbinary 问题么leetcode 129
Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?被G电面给毙了
微软有组在招new grad software engineer吗?word ladder 时间空间复杂度是多少, bfs 解的
word ladder ii 谁给个大oj不超时的?leetcode做伤心了
不明白leetcode OJ wordladder 2 总是 Time Limit ExceededSecond round phone interview with eBay
相关话题的讨论汇总
话题: string话题: arraylist话题: set话题: s1话题: linkedlist