由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 这段word ladder II怎么改?
相关主题
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。FB电面的标准就那么高?
请教word ladder| |google电面杯具,贡献题目
leetcode wordladder2 求助!(solved)一道电面题,分享下, 这个题应该用哪几个data structure?
Leetcode word ladder 求助!word ladder II 找所有而不是第一个的最短路径一般咋做的?
leetcode 129leetcode的3sum的运行时间问题
leetcode出了新题word ladder大家帮我看看这个程序哪里有问题啊!!
Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?问一个word ladder的题目
word break 2的时间复杂度是多少 这个解法转划单词题的优解
相关话题的讨论汇总
话题: string话题: list话题: arraylist话题: lastpaths话题: res
进入JobHunting版参与讨论
1 (共1页)
z*********e
发帖数: 10149
1
现在会超时,哪个地方应该优化一下?用的BFS
本机上一秒之内就出结果了,应该没有严重的算法问题吧
public List> findLadders(String start, String end, Set
dict) {
List> lastPaths = new ArrayList<>();
if(start == null || end == null) return lastPaths;
dict.add(end);
List top = new ArrayList<>();
top.add(start);
lastPaths.add(top);
if(start.equals(end)) return lastPaths;
int wordLen = start.length();
while(!dict.isEmpty()){ // same as while(true)
List> newPaths = new ArrayList<>();
Set nextLevel = new HashSet<>();
for(List l : lastPaths){
String lastWord = l.get(l.size() - 1);
for(int i = 0; i < wordLen ; i++)
for(char c = 'a'; c <= 'z'; c++){
if(c == lastWord.charAt(i)) continue;
String newWord = lastWord.substring(0, i) + c +
lastWord.substring(i+1);
if(dict.contains(newWord)){
List ll = deepCopy(l);
ll.add(newWord);
newPaths.add(ll);
nextLevel.add(newWord);
}
}
}
if(nextLevel.isEmpty()){ // cannot proceed
List> res = new ArrayList<>();
return res;
}else{
if(nextLevel.contains(end)){
List> res = new ArrayList<>();
for(List l : newPaths){
if(l.get(l.size() -1 ).equals(end)){
res.add(l);
}
}
return res;
}else{
for(String word : nextLevel) dict.remove(word);
lastPaths = newPaths;
}
}
}
// actually unnecessary return
return new ArrayList>();
}

List deepCopy(List list){
List res = new ArrayList<>();
for(String s : list) res.add(new String(s));
return res;
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
转划单词题的优解leetcode 129
请教word ladder解法,大test超时leetcode出了新题word ladder
Time limit exceeded for Word Ladder(leetcode)Word ladder II 感觉算法已经是最优了,但是过不了大测试,能不能帮忙看看?
word ladder ii 谁给个大oj不超时的?word break 2的时间复杂度是多少 这个解法
WordLadderII 看到很多解法比较长。 抛砖引玉,求更简洁解法。FB电面的标准就那么高?
请教word ladder| |google电面杯具,贡献题目
leetcode wordladder2 求助!(solved)一道电面题,分享下, 这个题应该用哪几个data structure?
Leetcode word ladder 求助!word ladder II 找所有而不是第一个的最短路径一般咋做的?
相关话题的讨论汇总
话题: string话题: list话题: arraylist话题: lastpaths话题: res