LeetCode: 1560. 圆形赛道上经过次数最多的扇区
好像还有种模拟解法。
这题因为一个扇形圈
- 我们不需要看中间经过了啥,直接关注起点和终点。
- 比如起点从 1 开始,终点为 2,不管走了几圈,1 -> 2 之间经过的次数大于其他的点 3.4…
- 如果起点 为 2 ,终点 1,那么就是 2 -> 1 之间的经过的次数大于其他的点。
public List<Integer> mostVisited(int n, int[] rounds) {
List<Integer> ans = new ArrayList<>();
int s = 0;
int e = rounds.length - 1;
if(rounds[s] > rounds[e]){
for (int i = 1; i <= rounds[e]; i++) {
ans.add(i);
}
for (int i = rounds[s]; i <= n; i++) {
ans.add(i);
}
}else {
// 正常的情况
for (int i = rounds[s]; i <= rounds[e]; i++) {
ans.add(i);
}
}
return ans;
}