874. 行走机器人模拟
模拟
class Solution {
public int robotSim(int[] commands, int[][] obstacles) {
int max = 0;
int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int k = 0;
Map<String, Boolean> map = new HashMap<>();
for (int i = 0; i < obstacles.length; i++) {
map.put(obstacles[i][0] + "," + obstacles[i][1], true);
}
int p = 0, q = 0;
for (int command : commands) {
if (command == -1) {
k = (k + 1) % 4;
} else if (command == -2) {
k = (k + 4 - 1) % 4;
} else {
int cur[] = dx[k];
for (int i = 0; i < command; i++) {
if (map.containsKey((p + cur[0]) + "," + (q + cur[1]))) {
break;
}
p += cur[0];
q += cur[1];
}
max = Math.max(max, p * p + q * q);
}
}
return max;
}
}
原文地址:https://www.cnblogs.com/acbingo/p/9349541.html
时间: 2024-11-08 16:01:07