Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void forwardRemove(LinkedList<Integer> digits){
- Iterator<Integer> it = digits.iterator();
- boolean odd = true;
- while (it.hasNext()) {
- it.next();
- if (odd) {
- it.remove();
- odd = false;
- }
- else{
- odd = true;
- }
- }
- }
- public void reverseRemove(LinkedList<Integer> digits){
- if(digits.size() == 1)
- return;
- ListIterator<Integer> it = digits.listIterator(digits.size());
- boolean odd = true;
- while (it.hasPrevious()) {
- it.previous();
- if (odd) {
- it.remove();
- odd = false;
- }
- else{
- odd = true;
- }
- }
- }
- public int lastRemaining(int n) {
- LinkedList<Integer> digits = new LinkedList<>();
- for(int i = 1; i <= n; i++){
- digits.add(i);
- }
- while(digits.size() > 1){
- forwardRemove(digits);
- System.out.println(digits);
- reverseRemove(digits);
- System.out.println(digits);
- }
- return digits.get(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement