Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. public void forwardRemove(LinkedList<Integer> digits){
  2. Iterator<Integer> it = digits.iterator();
  3. boolean odd = true;
  4. while (it.hasNext()) {
  5. it.next();
  6. if (odd) {
  7. it.remove();
  8. odd = false;
  9. }
  10. else{
  11. odd = true;
  12. }
  13. }
  14. }
  15. public void reverseRemove(LinkedList<Integer> digits){
  16. if(digits.size() == 1)
  17. return;
  18. ListIterator<Integer> it = digits.listIterator(digits.size());
  19. boolean odd = true;
  20. while (it.hasPrevious()) {
  21. it.previous();
  22. if (odd) {
  23. it.remove();
  24. odd = false;
  25. }
  26. else{
  27. odd = true;
  28. }
  29. }
  30. }
  31. public int lastRemaining(int n) {
  32. LinkedList<Integer> digits = new LinkedList<>();
  33. for(int i = 1; i <= n; i++){
  34. digits.add(i);
  35. }
  36. while(digits.size() > 1){
  37. forwardRemove(digits);
  38. System.out.println(digits);
  39. reverseRemove(digits);
  40. System.out.println(digits);
  41. }
  42. return digits.get(0);
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement