前言
掘金团队号上线,助你 Offer 临门! 点击 查看详情
题目描述
解题思路
- 本题属于约瑟夫环问题,属于经典的数学问题
- 解题的核心思路在于:定义一个下标指针,在于下面的这个式子:
- head = (head + m - 1)% arr.length;
解题代码
var lastRemaining = function(n, m) { let arr = [] for (let i = 0;i < n;i++) { arr.push(i); } let flag = 0; while (arr.length !== 1) { flag = (flag + m - 1) % arr.length; arr.splice(flag,1); } return arr[0]; }; 作者:Always_positive 链接:https://juejin.cn/post/6948417083923234823 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
总结
- 本题属于一种数学题。
- 关键点在于明确什么是约瑟夫环,以及删除第m个元素的下标是多少。
- 核心公式:head = (head + m - 1)% arr.length
