解这道题的关键在于理解每个孩子的位置情况和移动的情况,孩子是顺时针站的,而旺仔哥哥是逆时针转动的,所以,每次在i位置上移动相当于是在序列中逆序移动了a[i]次.
int stopAtWho(vector<int>& a, int m) {
int n = a.size();
int curt = 0;
while(m--){
int t = a[curt]%n;
if(t<curt+1){
curt = curt-t;
}else{
curt = n-(t-curt);
}
}
return curt+1;
}

京公网安备 11010502036488号