解题思路
简单模拟即可
代码
class Solution {
public int findTheWinner(int n, int k) {
int[] people = new int[n];
int index=0,sum=n;
while(sum!=1){//存活人数大于1
for(int i=1;i<k;){
for(int j=index+1;j<=n;j++){
if(j==n){
j=0;
}
if(people[j]==0){//当前点人员存活
index = j;
i++;//消耗一次k
break;
}
}
}
people[index]=1;//标记人员出局
sum--;
for(int j=index+1;j<=n;j++){//找到index后的下一个存活人员
if(j==n){
j=0;
}
if(people[j]==0){
index = j;
break;
}
}
}
return index+1;
}
}