剑指offer 62. 圆圈中最后剩下的数字
题目描述
解题思路
约瑟夫环问题,用动态规划解决。
class Solution {
public int lastRemaining(int n, int m) {
//定义:dp[i]表示 (i, m) 约瑟夫环问题的解(即最后剩下的数字)
// base case : dp[1] = 0
int x = 0;
for (int i = 2; i <= n; i++) {
//转移方程:dp[i] = (dp[i - 1] + m) % i
x = (x + m) % i;
}
return x;
}
}