剑指 Offer 62. 圆圈中最后剩下的数字
# 剑指 Offer 62. 圆圈中最后剩下的数字 (opens new window)
# 1.模拟
class Solution {
public int lastRemaining(int n, int m) {
if(n==1) return 0;
List<Integer> list=new ArrayList<>();
for(int i=0;i<n;i++) list.add(i);
int index=0;
while (true) {
int delinx=(index+m-1)%list.size();
list.remove(delinx);
if (list.size() == 1) {
return (list.get(0));
}
index=delinx==list.size()?0:delinx;
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57