问题描述
Leetcode 题目描述
Leetcode 题解
因为官方题解以及网上其他题解比较难以理解,自己经过思考和推导,终于理清楚其数学原理,现进行分析,欢迎各位同学建议、指正
推导过程
举例说明:
已知一个数组[1, 2, 3],每次删除第3个数字. 那么过程如下所示:
- 删除前[1, 2, 3] --> 删除后[1, 2], 删除坐标为2,即(3 - 1) % 3;
- 删除前[1,2] --> 删除后[2],删除坐标为0, 即(3 - 1) % 2
- 返回数组[2]剩下数字,2,坐标2为0
一般答案题解在专注于这个过程,导致很难去理解递推公式的f(n) = (f(n-1) + m) % n 的f(n)和f(n-1)到底是什么意思。
但是其实这个题目就是一个坐标问题,不用关心它到底删除的是哪个元素,换个思路去理解。
我们需要明确一下几个明显的推导前提:
- 一旦数组大小和每次删除第几个元素给定,那么数组最后剩下