import java.util.*;
class Solution {
public List findLadders(String beginWord, String endWord, List wordList) {
HashSet wordL = new HashSet();
wordL.addAll(wordList);
if(!wordL.contains(endWord))
return new ArrayList();
return new AbstractList(){
List ladder;
@Override
public List get(int index){
init();
return ladder.get(index);
}
@Override
public int size(){
init();
return ladder.size();
}
private void init(){
if(ladder != null)
return;
Queue visit = new LinkedList();
ladder = new ArrayList();
visit.add(new ArrayList());
visit.peek().add(beginWord);
while(!visit.isEmpty()){
ArrayList used = new ArrayList();
int level = visit.size();
boolean check = false;
System.out.println(visit);
for(int i=0; i
Подробнее здесь: [url]https://stackoverflow.com/questions/79174511/word-ladder-2-leetcode-java-i-am-getting-a-time-limit-exceed-problem-in-my-sol[/url]
[code]import java.util.*; class Solution { public List findLadders(String beginWord, String endWord, List wordList) { HashSet wordL = new HashSet(); wordL.addAll(wordList); if(!wordL.contains(endWord)) return new ArrayList();
return new AbstractList(){ List ladder; @Override public List get(int index){ init(); return ladder.get(index); } @Override public int size(){ init(); return ladder.size(); } private void init(){ if(ladder != null) return;
Queue visit = new LinkedList(); ladder = new ArrayList();