剑指 Offer 62. 圆圈中最后剩下的数字
思路
约瑟夫环,只是不是链表
暴力法不可以
参考
剑指 Offer 62. 圆圈中最后剩下的数字(数学 / 动态规划,清晰图解) - 圆圈中最后剩下的数字 - 力扣(LeetCode) (leetcode-cn.com)
这里推导有点难懂
存在递推 dp[i]=(dp[i−1]+m)%i
最后返回dp[n]
代码
public int lastRemaining(int n, int m) {
int []dp=new int[n+1];
for(int i=2;i<=n;i++){
dp[i]=(dp[i-1]+m)%i;
}
return dp[n];
}