1496. 判断路径是否相交
解题思路
- 暴力解法
1.分析题意,'N'、'S'、'E' 'W'其实是针对于坐标值x、y的加减规则
2.N(y++,x),S(y--,x),E(y,x--),W(y,x++)
3.题意分析,即走过的中间路径中,是否存在回环,即走一段时间,又回到某个起点
4.暴力解法,将每个走个的x/y存储下来,每次走到下一位置,判断x/y的数组中是否包含当前位置,如果包含则return true,否则return false
解题遇到的问题
无
后续需要总结学习的知识点
1.其他解法?
##解法1
import java.util.ArrayList;
import java.util.List;
class Solution {
public boolean isPathCrossing(String path) {
if (path == null || path.trim().isEmpty()) {
return true;
}
int x = 0, y = 0;
List<Integer> xlist = new ArrayList<Integer>();
List<Integer> ylist = new ArrayList<Integer>();
xlist.add(0);
ylist.add(0);
for (int i = 0; i < path.length(); i++) {
if (path.charAt(i) == 'N') {
y++;
} else if (path.charAt(i) == 'S') {
y--;
} else if (path.charAt(i) == 'E') {
x--;
} else if (path.charAt(i) == 'W') {
x++;
}
for (int j = 0; j < xlist.size(); j++) {
if (xlist.get(j) == x && ylist.get(j) == y) {
return true;
}
}
xlist.add(x);
ylist.add(y);
}
return false;
}
}
网友评论