③ 删完元素后,index- -,从此位置开始再计算第m-1个编号(公式同②),直到列表中只剩下一个元素。
Java 版:
import java.util.LinkedList;publicclassSolution{publicintLastRemaining_Solution(int n,int m){//校验if(n <=0|| m <=0)return-1;
LinkedList<Integer> list =newLinkedList<>();for(int i =0; i < n; i++){
list.add(i);}int index =-1;//记录删除元素的位置while(list.size()>1){
index =(index + m)% list.size();//取模防止index+m大于序列长度
list.remove(index);
index--;}return list.get(0);}}