题目描述:

每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!^_^)。请你试着想下,哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-1)

0,1, ..., n-1这个n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。

思路:分析每次被删除的数字的规律并直接计算出圆圈中最后剩下的数字。

递归写法:

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

循环写法:

class Solution {
public:int LastRemaining_Solution(int n, int m){if(n < 1 || m < 1)return -1;int LastNumber = 0;for(int i = 2; i <= n; ++ i)LastNumber = (LastNumber + m) % i;return LastNumber;}
};

46. 孩子们的游戏-圆圈中最后剩下的数字相关推荐

  1. 孩子们的游戏(圆圈中最后剩下的数)

    题目:孩子们的游戏(圆圈中最后剩下的数) 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首 ...

  2. 剑指offer:孩子们的游戏(圆圈中最后剩下的数)

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

  3. java输出带圆圈数字_java实现孩子们的游戏(圆圈中最后剩下的数)

    题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...

  4. java名侦探柯南游戏大全_孩子们的游戏(圆圈中最后剩下的数),Java代码实现思路分享...

    下面给大家分享的是一个Java代码实例,下面一起来了解一下吧. 抽象建模能力 题目: 让小朋友们围成一个大圈,之后,随机指定一个数m,让编号为0的小朋友开始报数. 每一次,喊到了m-1的那个小朋友要出 ...

  5. 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)

    剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...

  6. [剑指offer]面试题45:圆圈中最后剩下的数字

    面试题45:圆圈中最后剩下的数字 题目:0,1,-,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. ❖ 经典的解法,用环形链表模拟圆圈 代 ...

  7. 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)

    题目 0,1,2-,n-1这n个数字排成一个圆圈,从数字0开始,每次从这圆圈你删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数字组成一个圆圈,从数字0开始每次删除第 ...

  8. 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字

    [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...

  9. 面试题62. 圆圈中最后剩下的数字

    面试题62. 圆圈中最后剩下的数字 思路:f(n,m) = (f(n-1,m)+m)%n.约瑟夫问题 写法1 class Solution { public:int lastRemaining(int ...

最新文章

  1. 区块链概况:从数字货币说起
  2. 静态变量与实例变量的区别
  3. Map.putAll()用法
  4. 路由器mstp多域配置举例
  5. python qq邮箱 群发
  6. Intelij IDEA 2016.3安装mybatis插件并激活教程
  7. 浏览器输入 URL 之后的链路
  8. Linux系统编程26:进程间通信之进程间通信的基本概念
  9. C语言——冒泡排序法
  10. 利用predis操作redis方法大全
  11. 安装Mycat 曾经踩的那些坑
  12. 数学建模系列-优化模型---(一)规划模型
  13. Python数据处理Tips数据预处理操作方法汇总
  14. 机器学习-支持向量回归
  15. 电脑长截屏工具 --- FastStone Capture 下载
  16. 艳照门事件发酵 谷歌称已删除数万张照片
  17. Matplotlib坐标轴格式
  18. java多线程归并排序_并行计算实验-串、并行排序算法
  19. 二、JAVA BIO
  20. 【Python自查手册】之项目实操

热门文章

  1. VMware vSphere 7.0 发行说明文档
  2. 渐变图形---音频条形图
  3. mesos安装--软件源安装
  4. linux命令如何查看dns,详解Linux系统使用dig/nslookup命令查看dns解析的方法
  5. flume+kafka整合采集数据案例
  6. 信息平台和数据科学家的兴起
  7. iOS开发人员必看的精品资料(100个)(转)
  8. 如何用好erp系统【ERP】
  9. java批量发短信软件_如何获得批量短信的发送短信
  10. 微信对接推送模板消息