45. 圆圈中最后剩下的数字
题目:
0, 1, …, n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字,求出这个圆圈里面剩下的最后一个数字。
代码实现:
int GetLastRemainData(int n, int m)
{if (n < 2 || m < 1) return -1;std::list<int> datas;for (int curData = 0; curData <= n; ++curData) datas.push_back(curData);while ((int)datas.size() != 1){// 取得位置为m的元素auto curIter = datas.begin();for (int idx = 1; idx < m; ++idx){++curIter;if (curIter == datas.end()) curIter = datas.begin();}// 取得m元素的下一个位置auto nextIter = ++curIter; // 因为std::list为双线迭代器,不能使用nextIter = curIter + 1;if (nextIter == datas.end()) nextIter = datas.begin();--curIter; // 还原// 删除当前元素,重新赋值datas.erase(curIter);curIter = nextIter;}return datas.front();
}
45. 圆圈中最后剩下的数字相关推荐
- 【剑指offer-Java版】45圆圈中最后剩下的数字
圆圈中最后剩余的数字:约瑟夫环问题 0-n这n个数字排成一圈,从数字零开始每次从这个圆圈中删除第m个数字,求出剩余的最后一个数字 public class _Q45<T> {// 低效的模 ...
- [剑指offer]面试题45:圆圈中最后剩下的数字
面试题45:圆圈中最后剩下的数字 题目:0,1,-,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. ❖ 经典的解法,用环形链表模拟圆圈 代 ...
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...
- 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)
剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...
- 《剑指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 ...
- LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解
面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...
- 46. 孩子们的游戏-圆圈中最后剩下的数字
题目描述: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机 ...
- Q45:圆圈中最后剩下的数字
备注:感觉这道题目的代码虽少,但理解起来还是有一定的难度,大家最好用纸和笔算算,仔细找一下映射前后函数的变化,是如何推导出递归式的. publicclass Q45圆圈中最后剩下的数字 {/*** 题 ...
最新文章
- Mysql中(@i:=@i+1)的作用
- 1.6 多项式回归-机器学习笔记-斯坦福吴恩达教授
- C# webBrowser禁止在新窗口打开,强制在本窗口打开
- 使用域名访问后台页面
- 删除Nifi中的template
- Comparable和Comparator区别是什么?差点吃屎
- 在PL/SQL中使用随机数和GUID
- Flink Kafka Connector 与 Exactly Once 剖析
- office2013简体中文版官方下载
- 2022_天勤数据结构高分笔记_第二章_算法
- kali无线wifi密码破解
- 旅游网站毕业设计,旅游网站网页设计设计源码,旅游网站设计毕业论文
- Frame-Pannel-Button综合
- 【转载】贵妃醉酒百态(原创)
- 节拍器在学习音乐过程中起到什么作用?-小星星节拍器怎么样?
- Android 图形架构 之三—— 创建Layer、Surface、SurfaceControl
- kali linux2021 安装pip
- 应用matlab仿真几类混沌电路,典型混沌电路及分析.ppt
- MP2451的BUCK电路
- 厄米共轭matlab,JuliaStatComputing