题目:

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. 圆圈中最后剩下的数字相关推荐

  1. 【剑指offer-Java版】45圆圈中最后剩下的数字

    圆圈中最后剩余的数字:约瑟夫环问题 0-n这n个数字排成一圈,从数字零开始每次从这个圆圈中删除第m个数字,求出剩余的最后一个数字 public class _Q45<T> {// 低效的模 ...

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

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

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

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

  4. 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)

    剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...

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

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

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

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

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

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

  8. LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解

    面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...

  9. 46. 孩子们的游戏-圆圈中最后剩下的数字

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

  10. Q45:圆圈中最后剩下的数字

    备注:感觉这道题目的代码虽少,但理解起来还是有一定的难度,大家最好用纸和笔算算,仔细找一下映射前后函数的变化,是如何推导出递归式的. publicclass Q45圆圈中最后剩下的数字 {/*** 题 ...

最新文章

  1. Mysql中(@i:=@i+1)的作用
  2. 1.6 多项式回归-机器学习笔记-斯坦福吴恩达教授
  3. C# webBrowser禁止在新窗口打开,强制在本窗口打开
  4. 使用域名访问后台页面
  5. 删除Nifi中的template
  6. Comparable和Comparator区别是什么?差点吃屎
  7. 在PL/SQL中使用随机数和GUID
  8. Flink Kafka Connector 与 Exactly Once 剖析
  9. office2013简体中文版官方下载
  10. 2022_天勤数据结构高分笔记_第二章_算法
  11. kali无线wifi密码破解
  12. 旅游网站毕业设计,旅游网站网页设计设计源码,旅游网站设计毕业论文
  13. Frame-Pannel-Button综合
  14. 【转载】贵妃醉酒百态(原创)
  15. 节拍器在学习音乐过程中起到什么作用?-小星星节拍器怎么样?
  16. Android 图形架构 之三—— 创建Layer、Surface、SurfaceControl
  17. kali linux2021 安装pip
  18. 应用matlab仿真几类混沌电路,典型混沌电路及分析.ppt
  19. MP2451的BUCK电路
  20. 厄米共轭matlab,JuliaStatComputing

热门文章

  1. 别了MongoDB?
  2. 10 个迅速提升你 Git 水平的提示
  3. 如何处理iOS中照片的方向
  4. RUP大讲堂(第五讲)-基于用例的需求工程技术
  5. 7.剑指Offer --- 两个面试案例
  6. 11.性能之巅 洞悉系统、企业与云计算 --- 云计算
  7. 5.CND技术详解---全局负载均衡工作原理及实现
  8. 4. Layout overview
  9. 56. Attribute value 属性
  10. java 中wait notify简解