递归问题:
- n问题可转位n-1形式的问题
- 可终结
12行代码是根据数学规律找出来的
/**
* @param {number} n
* @param {number} k
* @return {number}
*/
var findTheWinner = function(n, k) {
let arr = []
for (let i = 0; i<n; i++) arr.push(i+1)
let searchP = (arr, k, pre) => {
if (arr.length > 1) {
pre = k + pre - 1
while (pre > arr.length-1) pre = pre - arr.length
arr.splice(pre, 1)
searchP(arr, k, pre)
}
}
searchP(arr, k, 0)
return arr[0]
};
评论区