46. 孩子们的游戏-圆圈中最后剩下的数字
题目描述:
每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。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. 孩子们的游戏-圆圈中最后剩下的数字相关推荐
- 孩子们的游戏(圆圈中最后剩下的数)
题目:孩子们的游戏(圆圈中最后剩下的数) 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首 ...
- 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- java输出带圆圈数字_java实现孩子们的游戏(圆圈中最后剩下的数)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- java名侦探柯南游戏大全_孩子们的游戏(圆圈中最后剩下的数),Java代码实现思路分享...
下面给大家分享的是一个Java代码实例,下面一起来了解一下吧. 抽象建模能力 题目: 让小朋友们围成一个大圈,之后,随机指定一个数m,让编号为0的小朋友开始报数. 每一次,喊到了m-1的那个小朋友要出 ...
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...
- [剑指offer]面试题45:圆圈中最后剩下的数字
面试题45:圆圈中最后剩下的数字 题目:0,1,-,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. ❖ 经典的解法,用环形链表模拟圆圈 代 ...
- 《剑指Offer》62:圆圈中最后剩下的数字(约瑟夫环)
题目 0,1,2-,n-1这n个数字排成一个圆圈,从数字0开始,每次从这圆圈你删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数字组成一个圆圈,从数字0开始每次删除第 ...
- 【LeetCode】剑指 Offer 62. 圆圈中最后剩下的数字
[LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 文章目录 [LeetCode]剑指 Offer 62. 圆圈中最后剩下的数字 一.动态规划 总结 一.动态规划 构建一个长度为 n ...
- 面试题62. 圆圈中最后剩下的数字
面试题62. 圆圈中最后剩下的数字 思路:f(n,m) = (f(n-1,m)+m)%n.约瑟夫问题 写法1 class Solution { public:int lastRemaining(int ...
最新文章
- 区块链概况:从数字货币说起
- 静态变量与实例变量的区别
- Map.putAll()用法
- 路由器mstp多域配置举例
- python qq邮箱 群发
- Intelij IDEA 2016.3安装mybatis插件并激活教程
- 浏览器输入 URL 之后的链路
- Linux系统编程26:进程间通信之进程间通信的基本概念
- C语言——冒泡排序法
- 利用predis操作redis方法大全
- 安装Mycat 曾经踩的那些坑
- 数学建模系列-优化模型---(一)规划模型
- Python数据处理Tips数据预处理操作方法汇总
- 机器学习-支持向量回归
- 电脑长截屏工具 --- FastStone Capture 下载
- 艳照门事件发酵 谷歌称已删除数万张照片
- Matplotlib坐标轴格式
- java多线程归并排序_并行计算实验-串、并行排序算法
- 二、JAVA BIO
- 【Python自查手册】之项目实操