剑指 Offer 62. 圆圈中最后剩下的数字

130 阅读1分钟

剑指 Offer 62. 圆圈中最后剩下的数字

使用队列结构去做,超出了时间限制

image.png

简化代码如下

解题思路

  • 从最后两个数开始反推
  • 补全所有的数,得到的下标就是所求的数
const lastRemaining = (n, m) => {
    let res = 0;
    for (let i = 2; i <= n; i++) {
        res = (res + m) % i;
    }
    return res;
};

image.png