更新表达方式

This commit is contained in:
programmercarl
2025-03-14 17:11:14 +08:00
parent ee41ca792f
commit 4b01a7d5e4
2 changed files with 18 additions and 7 deletions

View File

@ -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;

View File

@ -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、起点和终点的最短路径长度
首先题目中并没有给出点与点之间的连线,而是要我们自己去连,条件是字符只能差一个。
所以判断点与点之间的关系,需要判断是不是差一个字符,**如果差一个字符,那就是有链接**。
然后就是求起点和终点的最短路径长度,**这里无向图求最短路,广搜最为合适,广搜只要搜到了终点,那么一定是最短的路径**。因为广搜就是以起点中心向四周扩散的搜索。
然后就是求起点和终点的最短路径长度,在无权图中,求最短路,用深搜或者广搜就行,没必要用最短路算法。
**本题如果用深搜,会比较麻烦,要在到达终点的不同路径中选则一条最短路**。 而广搜只要达到终点,一定是最短
**在无权图中,用广搜求最短路最为合适,广搜只要搜到了终点,那么一定是最短的路径**。因为广搜就是以起点中心向四周扩散的搜索
**本题如果用深搜,会比较麻烦,要在到达终点的不同路径中选则一条最短路**
而广搜只要达到终点,一定是最短路。
另外需要有一个注意点: