题解 | #环形链表的约瑟夫问题#
环形链表的约瑟夫问题
http://www.nowcoder.com/practice/41c399fdb6004b31a6cbb047c641ed8a
public class Solution {
/**
*
* @param n int整型
* @param m int整型
* @return int整型
*/
public int ysf (int n, int m) {
// write code here
//从编号为 1 的人开始报数,报到 m 的人离开 即每次都是index = m -1
ArrayList<Integer> result = new ArrayList<>();
for(int i = 1;i<=n;i++){
result.add(i);
}
int id = 0;
while(n >1){
id = ( id + m - 1) % n ;
result.remove(id);
n--;
}
return result.get(0);
}
}