问题描述:
思路:
- 用循环链表模拟
- 用数组游标模拟
- 动态规划(数学方法)
设 d p [ i ] dp[i] dp[i]表示剩余i个人进行出环的最终胜利者,显然可以得到一个状态转移方程: d p [ n ] = ( d p [ n − 1 ] + m ) dp[n]=(dp[n-1]+m)%n dp[n]=(dp[n−1]+m)。相当于从1个人去推出n个人的递推关系。复杂度 O ( n ) O(n) O(n)
- 当n较大时有优化方法
博文戳这里
问题描述:
思路:
设 d p [ i ] dp[i] dp[i]表示剩余i个人进行出环的最终胜利者,显然可以得到一个状态转移方程: d p [ n ] = ( d p [ n − 1 ] + m ) dp[n]=(dp[n-1]+m)%n dp[n]=(dp[n−1]+m)。相当于从1个人去推出n个人的递推关系。复杂度 O ( n ) O(n) O(n)