剑指offer-孩子们的游戏(圆圈中最后剩下的数)
题目描述
解题思路
本题是典型的约瑟夫环问题,考虑用函数f(n)表示0~n-1共n个数字中最后剩下的数字,去掉的数字为(m-1)%n,由于下一次报数是从第m%n个数字开始,因此f(n-1)中数字和f(n)中数字对应关系依次为
f(n-1) f(n)
0 m%n
1 (m+1)%n
… …
n-2 (m-2)%n
可以归纳出两者之间的关系:f(n)= (f(n-1)+ m)% n 当n=1时,圆圈中剩下的数字一定为0,所以递推关系如下:
f(n)= 0 n=1
(f(n-1)+ m)% n n>1
代码
1 class Solution { 2 public: 3 int LastRemaining_Solution(int n, int m) 4 { 5 if(n<1||m<1) 6 return -1; 7 int l=0; 8 for(int i=2;i<=n;i++) 9 l=(l+m)%i; 10 return l; 11 } 12 };
转载于:https://www.cnblogs.com/wmx24/p/8950419.html
剑指offer-孩子们的游戏(圆圈中最后剩下的数)相关推荐
- 剑指offer打卡|圆圈中最后剩下的数
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- 孩子们的游戏(圆圈中最后剩下的数)
题目:孩子们的游戏(圆圈中最后剩下的数) 题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首 ...
- 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)
剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...
- 剑指offer:孩子们的游戏(圆圈中最后剩下的数)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- java输出带圆圈数字_java实现孩子们的游戏(圆圈中最后剩下的数)
题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指 ...
- java名侦探柯南游戏大全_孩子们的游戏(圆圈中最后剩下的数),Java代码实现思路分享...
下面给大家分享的是一个Java代码实例,下面一起来了解一下吧. 抽象建模能力 题目: 让小朋友们围成一个大圈,之后,随机指定一个数m,让编号为0的小朋友开始报数. 每一次,喊到了m-1的那个小朋友要出 ...
- 46. 孩子们的游戏-圆圈中最后剩下的数字
题目描述: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机 ...
- 【剑指offer】_13 圆圈中最后的数
题目描述 年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机指定 ...
- 《剑指offer》-- 栈的压入与弹出序列、把字符串转化为整数、扑克牌顺子、孩子们的游戏(圆圈中最后剩下的数)
一.栈的压入与弹出序列: 1.题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序. 假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序 ...
- 剑指 Offer II 014. 字符串中的变位词
剑指 Offer II 014. 字符串中的变位词 题目 示例 解答 题目来源为leetcode 题目 给定两个字符串s1和s2,写一个函数来判断s2是否包含s1的某个变位词. 换句话说,第一个字符串 ...
最新文章
- 华为机考HJ1字符串最后一个单词的长度
- 发条js调试工具_小工具大帮手,利用 @open-node/antman 实现 node.js 进程线上调试,无须重启...
- 【线段树合并】解题报告:luogu P4556雨天的尾巴 (树上对点差分 + 动态开点 + 线段树合并)线段树合并模板离线/在线详解
- 太厉害了!目前 Redis 可视化工具最全的横向评测
- Node.js:Web模块、文件系统
- boost::allocator_void_pointer
- redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用
- 业务赋能利器之外卖特征档案
- UmiJS 是一个 react 开发框架
- bzoj 1055: [HAOI2008]玩具取名(区间DP)
- Linux ALSA 音频系统:物理链路篇
- 【人脸表情识别】基于matlab GUI LBP+SVM脸部动态特征人脸表情识别【含Matlab源码 1369期】
- 推荐C语言编译器(手机APP)
- p37 p38 p39 p40 p41
- OpenNLP进行自然语言处理
- 车联网目前在我国主要的应用市场
- 文理学院的数学计算机方向夏校,美国大学夏校.doc
- 欧元区风险担忧情绪依然存在,美元震荡上扬
- 雅虎通8.3版本发布!
- Python replace() 方法
热门文章
- PyQt5 技术篇-QWidget、Dialog设置界面固定大小、不可拉伸方法实例演示
- 操作系统-并发性:互斥与同步
- [YTU]_2575( 交通工具信息)
- [YTU]_2435 ( C++ 习题 输出日期时间--友元函数)
- mysql conflicts with_安装MYSQL错误“conflicts with file from package mysql-libs-*” 解决方法...
- 【R语言-20行代码】牛顿迭代法求伽马函数极大似然估计法的参数估计
- new Scanner(1.txt);读取不到文件中的数据
- assert() (C++) 非常简单!
- 从Proxy到Vue3数据绑定
- 数据库路由中间件MyCat - 源代码篇(7)