y*e
2 楼
给定一个2D board B,一个dictionary D和一个初始坐标pair p,返回所有
从这个初始坐标开始的词(要求每一词必须在dictionary里)。例如:
B =
[
["APPL"],
["DMCE"],
["AINE"]
]
D = "APPLE", "ADMIN", "BOY"
p = {0, 0}
返回"APPLE", "ADMIN"
非常类似leetcode上的word search。一个额外的问题是如何优化。这个问题主要针对
在对B搜索的时候,从初始坐标开始,可能要遍历所有其他坐标点,非常不efficient。
问如何避免遍历所有其他坐标点。
从这个初始坐标开始的词(要求每一词必须在dictionary里)。例如:
B =
[
["APPL"],
["DMCE"],
["AINE"]
]
D = "APPLE", "ADMIN", "BOY"
p = {0, 0}
返回"APPLE", "ADMIN"
非常类似leetcode上的word search。一个额外的问题是如何优化。这个问题主要针对
在对B搜索的时候,从初始坐标开始,可能要遍历所有其他坐标点,非常不efficient。
问如何避免遍历所有其他坐标点。
m*s
3 楼
【 以下文字转载自 LosAngeles 讨论区 】
发信人: repeating (枪王之王), 信区: LosAngeles
标 题: 爆炸性新闻, 阿诺离婚了。
发信站: BBS 未名空间站 (Tue May 10 01:02:22 2011, 美东)
不是州长,连老婆都搞不定。
发信人: repeating (枪王之王), 信区: LosAngeles
标 题: 爆炸性新闻, 阿诺离婚了。
发信站: BBS 未名空间站 (Tue May 10 01:02:22 2011, 美东)
不是州长,连老婆都搞不定。
e*g
4 楼
去两个宝宝版问。
h*3
5 楼
求教一下为什么有的是OA有的PHONE啊?
m*t
8 楼
把dictionary建成trie? 这样做词搜索的时候,每搜索到一部分时,都到tire里查。这
样的好处是不用查所有的可能。
有没有更好的办法?
样的好处是不用查所有的可能。
有没有更好的办法?
a*x
9 楼
我想歪了~
s*l
10 楼
这个dictionary是个set吗
要是的话 这道题 bfs就可以了把~
要是的话 这道题 bfs就可以了把~
h*5
11 楼
是分居,估计还在分赃不均没搞定呢
【在 m*****s 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: http://www.cnn.com/2011/SHOWBIZ/05/10/schwarzenegger.shriver.se
【在 m*****s 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: http://www.cnn.com/2011/SHOWBIZ/05/10/schwarzenegger.shriver.se
h*7
12 楼
......
这描述属于典型的miscommunication
这描述属于典型的miscommunication
m*k
15 楼
public static List findWords(char[][] board, List words){
List result = new ArrayList<>();
int[][] deltas = {{0, 1}, {1, 0}};
for(String w: words){
if(w.charAt(0)==board[0][0]){
match(board, 0,0,1, w, deltas, result);
}
}
return result;
}
private static void match(char[][] board, int i, int j, int k, String w,
int[][] deltas, List result) {
if(k==w.length()){
result.add(w);
return;
}
for(int[] indiceDelta: deltas){
int xdelta = indiceDelta[0];
int ydelta = indiceDelta[1];
int x= i + xdelta;
int y =j + ydelta;
if(x>=board.length || y >=board[0].length){
continue;
}
char charXY = board[x][y];
if(charXY == w.charAt(k)){
match(board, x,y,k+1, w, deltas, result);
}
}
}
List
int[][] deltas = {{0, 1}, {1, 0}};
for(String w: words){
if(w.charAt(0)==board[0][0]){
match(board, 0,0,1, w, deltas, result);
}
}
return result;
}
private static void match(char[][] board, int i, int j, int k, String w,
int[][] deltas, List
if(k==w.length()){
result.add(w);
return;
}
for(int[] indiceDelta: deltas){
int xdelta = indiceDelta[0];
int ydelta = indiceDelta[1];
int x= i + xdelta;
int y =j + ydelta;
if(x>=board.length || y >=board[0].length){
continue;
}
char charXY = board[x][y];
if(charXY == w.charAt(k)){
match(board, x,y,k+1, w, deltas, result);
}
}
}
相关阅读
canon因为汇率在各国涨价[FS] 5D mark II & 1D Mark II N & 50 f1.4明天开始下雪请教,mac上用什么轻度后期的软件比较好?【春天来了】 湾区lx100好还是x100好?请问:ebay上的sony a6000能买吗现时画质最好的大sensor轻便相机是哪款?两年前的器材【春天来了】『发包子求解答』Canon 24-70 f4怎么样?拍娃机,有些问题。Nikon D750求推荐拍运动娃4月份 拍啥好?终于把相机降级了该入35mm/1.4还是55mm/1.8,求点醒把coms清洁了一下创意无止境 五款"奇葩"造型相机(转)【春天来了】晒出你身边的第一抹绿色 (转载)greentoe 买Canon 70-200 二代靠谱吗