如果是圆圈固定数循环 可以用%
圆圈中最后剩下的数字
var lastRemaining = function(n, m) { let arr = [] let head = 0 for (let i = 0; i < n; i++) arr.push(i) while(arr.length > 1) { head = (head + m - 1) % arr.length arr.splice(head, 1) } return arr[0] };
//这种写法比较耗时,但是问题解决了
var lastRemaining = function(n, m) { let arr = [] let head = 0 for (let i = 0; i < n; i++) arr.push(i) while(arr.length > 1) { head = (head + m - 1) % arr.length arr.splice(head, 1) } return arr[0] };
//这种写法比较耗时,但是问题解决了