当前位置:首页 » 《随便一记》 » 正文

JZ46 孩子们的游戏(圆圈中最后剩下的数)_The structure of the world

29 人参与  2022年03月20日 15:58  分类 : 《随便一记》  评论

点击全文阅读


JZ46 孩子们的游戏(圆圈中最后剩下的数

  • 题目描述
  • 思路分析
  • 代码实现

题目描述

点这里

思路分析

约瑟夫问题。
数组链表模拟/递推递归,都能做。
暴力模拟的方法就不讲了,当成链表节点就好。主要写下递归递推做法。递推/递归的关键是找到递推关系。
f ( n , m ) f(n,m) f(n,m)为问题规模为 n , m n,m n,m时问题的答案。
则画图重新标号+映射分析可得递推式 f ( n , m ) = ( f ( n − 1 , m ) + m )   m o d   n f(n,m)=(f(n-1,m)+m)\ mod\ n f(n,m)=(f(n1,m)+m) mod n

代码实现

class Solution {
public:
    int LastRemaining_Solution(int n, int m) {
        if(!n) return -1;
        if(n==1) return 0;
        return (LastRemaining_Solution(n-1,m)+m)%n;
    }
};

点击全文阅读


本文链接:http://zhangshiyu.com/post/36414.html

递归  分析  约瑟夫  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1