Download presentation
Published byBarnaby Beasley Modified over 9 years ago
1
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; null head
2
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; null 1 head
3
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 1 head
4
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 1 tail head
5
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 1 tail head
6
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x null 1 tail head
7
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 null 1 tail head
8
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 1 tail head
9
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 1 tail head
10
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 1 tail head
11
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 1 tail head
12
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 1 tail null head
13
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 3 1 tail null head
14
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 3 1 tail head
15
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 3 1 tail head
16
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 3 1 tail head
17
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; x 2 3 1 tail head
18
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 x 3 1 tail head null
19
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 x 3 1 tail 4 head null
20
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 x 3 1 tail 4 head
21
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 x 3 1 tail 4 head
22
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 x 3 1 tail 4 head
23
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head tail 5
24
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head tail 5 6
25
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head tail 5 6 7
26
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head tail 5 8 6 7
27
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head 9 tail 5 8 6 7
28
Josephus Problem: Build the Circular Linked List
public class Josephus { private static class Node { int val; Node next; } public static void main(String[] args) { int M = Integer.parseInt(args[0]); int N = Integer.parseInt(args[1]); Node head = new Node(); head.val = 1; head.next = head; Node tail = head; for (int i = 2; i <= N; i++) { Node x = new Node(); x.val = i; x.next = head; tail.next = x; tail = x; 2 3 1 4 head 9 tail 5 8 6 7 Done Building
29
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 9 5 8 6 7 M 5 N 9 % java Josephus 5 9
30
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 % java Josephus 5 9
31
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 % java Josephus 5 9
32
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 1 % java Josephus 5 9
33
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 1 % java Josephus 5 9
34
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 2 % java Josephus 5 9
35
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 2 % java Josephus 5 9
36
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 3 % java Josephus 5 9
37
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 3 % java Josephus 5 9
38
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 4 % java Josephus 5 9
39
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 4 % java Josephus 5 9
40
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 i 5 % java Josephus 5 9
41
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 8 6 7 M 5 N 9 % java Josephus 5 9 5
42
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 5 is effectively deleted 5 8 6 7 M 5 N 9 % java Josephus 5 9 5
43
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 % java Josephus 5 9 5
44
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 1 % java Josephus 5 9 5
45
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 1 % java Josephus 5 9 5
46
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 2 % java Josephus 5 9 5
47
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 2 % java Josephus 5 9 5
48
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 3 % java Josephus 5 9 5
49
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 3 % java Josephus 5 9 5
50
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 4 % java Josephus 5 9 5
51
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 4 % java Josephus 5 9 5
52
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 i 5 % java Josephus 5 9 5
53
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 % java Josephus 5 9 5 1
54
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 1 4 x 9 8 6 7 M 5 N 9 % java Josephus 5 9 5 1
55
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 4 x 9 8 6 7 M 5 N 9 % java Josephus 5 9 5 1
56
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 4 x 9 8 6 7 M 5 N 9 % java Josephus 5 9 5 1 7
57
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 3 x 9 8 6 M 5 N 9 % java Josephus 5 9
58
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 x 9 8 6 M 5 N 9 % java Josephus 5 9
59
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 x 9 8 M 5 N 9 % java Josephus 5 9
60
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); 2 x 8 M 5 N 9 % java Josephus 5 9
61
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); x 8 M 5 N 9 % java Josephus 5 9
62
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); x 8 M 5 N 9 % java Josephus 5 9
63
Josephus Problem: Kill Off Every Mth Person
Node x = tail; while (x != x.next) { for (int i = 1; i < M; i++) x = x.next; System.out.print(x.next.val + " "); x.next = x.next.next; } System.out.println(x.val); x Survivor 8 M 5 N 9 % java Josephus 5 9
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.