public class 约瑟夫环 {
public static int[] answer(int m, int n){
Node head = new Node(1,null);
Node temp = null;
for (int i = 2; i <= m; i++) {
temp = temp==null?head:temp;
temp.next = new Node(i,null);
temp=temp.next;
}
temp.next = head;
Node p = head;
while (p.next.next!=p){
//这里报数不能报到n 想一想
for (int i = 1; i < n-1; i++) {
p = p.next;
}
p.next = p.next.next;
}
return new int[]{p.var,p.next.var};
}
@Data
@AllArgsConstructor
private static class Node {
int var;
Node next;
}
public static void main(String[] args) {
System.out.println(Arrays.toString(answer(39,3)));
System.out.println(Arrays.toString(answer(39,7)));
}
}
约瑟夫环问题
最新推荐文章于 2022-04-06 10:30:21 发布