- 操作系统:ubuntu22.04
- IDE:Visual Studio Code
- 编程语言:C++11
题目描述
0, 1, …, n-1 这 n 个数字排成一个圆圈,从数字 0 开始,每次从这个圆圈里删除第 m 个数字。
求出这个圆圈里剩下的最后一个数字。
示例:
输入: n =5, m =3
输出: 3
解释:
圆圈初始状态: [0, 1, 2, 3, 4]
删除顺序: 2 → 0 → 1 → 4 → 最后剩下 3解法思路:递推公式 + 动态规划
这个问题是经典的约瑟夫环问题(Josephus Problem)。
我们可以使用一个数学递推公式来快速求解:
本文发布于:2026-02-13,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。


发布评论