class Solution {
List<Integer> list;
public int findTheWinner(int n, int k) {
list = new ArrayList<>();
for(int i = 1;i <= n;i++){
list.add(i);
}
dfs(list,k,0);
return list.get(0);
}
void dfs(List<Integer> list,int k,int index){
if(list.size() == 1){
return;
}
if(index + k - 1 < list.size()){
list.remove(index + k - 1);
dfs(list,k,index + k - 1);
}else{
int l = (k - (list.size() - index)) % list.size();
if(l == 0){
list.remove(list.size() - 1);
dfs(list,k,0);
}else{
list.remove(l - 1);
dfs(list,k,l - 1);
}
}
}
}
10-03
1191
10-04
965