index
title: 圆圈中最后剩下的数 date: 2019-08-21T11:00:41+08:00 draft: false categories: offer
题目
解题思路
模拟
public int LastRemaining_Solution(int n, int m) {
if (n == 1) return 1;
LinkedList<Integer> data = new LinkedList<>();
for (int i = 0; i < n; i++) {
data.addLast(i);
}
while (data.size() != 1) {
for (int i = 0; i < m; i++) {
Integer first = data.pollFirst();
if (i != m - 1) {
data.addLast(first);
}
}
}
return data.pollFirst();
}通过数学推导的解法
Last updated