mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-05 22:59:31 +08:00
更新表达方式
This commit is contained in:
@ -111,14 +111,14 @@ bool isResult(vector<vector<int>>& grid, int x, int y) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 第二边界右边
|
||||
// 第二边界下边
|
||||
for (int j = 0; j < m; j++) {
|
||||
if (visited[n - 1][j]) {
|
||||
isSecond = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// 第二边界下边
|
||||
// 第二边界右边
|
||||
for (int i = 0; i < n; i++) {
|
||||
if (visited[i][m - 1]) {
|
||||
isSecond = true;
|
||||
|
@ -13,10 +13,14 @@
|
||||
|
||||
2. 序列中最后一个字符串是 endStr。
|
||||
|
||||
3. 每次转换只能改变一个字符。
|
||||
3. **每次转换只能改变一个位置的字符**(例如 ftr 可以转化 fty ,但 ftr 不能转化 frx)。
|
||||
|
||||
4. 转换过程中的中间字符串必须是字典 strList 中的字符串。
|
||||
|
||||
5. beginStr 和 endStr 不在 字典 strList 中
|
||||
|
||||
6. 字符串中只有小写的26个字母
|
||||
|
||||
给你两个字符串 beginStr 和 endStr 和一个字典 strList,找到从 beginStr 到 endStr 的最短转换序列中的字符串数目。如果不存在这样的转换序列,返回 0。
|
||||
|
||||
输入描述
|
||||
@ -67,16 +71,23 @@ yhn
|
||||
|
||||
所以这道题要解决两个问题:
|
||||
|
||||
* 图中的线是如何连在一起的
|
||||
* 起点和终点的最短路径长度
|
||||
1、图中的线是如何连在一起的
|
||||
|
||||
在搜索的过程中,我们可以枚举,用26个字母替换当前字符串的每一个字符,在看替换后 是否在 strList里出现过,就可以判断 两个字符串 是否是链接的。
|
||||
|
||||
2、起点和终点的最短路径长度
|
||||
|
||||
首先题目中并没有给出点与点之间的连线,而是要我们自己去连,条件是字符只能差一个。
|
||||
|
||||
所以判断点与点之间的关系,需要判断是不是差一个字符,**如果差一个字符,那就是有链接**。
|
||||
|
||||
然后就是求起点和终点的最短路径长度,**这里无向图求最短路,广搜最为合适,广搜只要搜到了终点,那么一定是最短的路径**。因为广搜就是以起点中心向四周扩散的搜索。
|
||||
然后就是求起点和终点的最短路径长度,在无权图中,求最短路,用深搜或者广搜就行,没必要用最短路算法。
|
||||
|
||||
**本题如果用深搜,会比较麻烦,要在到达终点的不同路径中选则一条最短路**。 而广搜只要达到终点,一定是最短路。
|
||||
**在无权图中,用广搜求最短路最为合适,广搜只要搜到了终点,那么一定是最短的路径**。因为广搜就是以起点中心向四周扩散的搜索。
|
||||
|
||||
**本题如果用深搜,会比较麻烦,要在到达终点的不同路径中选则一条最短路**。
|
||||
|
||||
而广搜只要达到终点,一定是最短路。
|
||||
|
||||
另外需要有一个注意点:
|
||||
|
||||
|
Reference in New Issue
Block a user