备注:感觉这道题目的代码虽少,但理解起来还是有一定的难度,大家最好用纸和笔算算,仔细找一下映射前后函数的变化,是如何推导出递归式的。
publicclass Q45圆圈中最后剩下的数字 {/*** 题目:圆圈中最后剩下的数字* 题目说明:0,1, ... ,n-1这n个数字排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。* 解题思路:解决该问题主要是依靠的数学中的一种映射关系求出递归公式:*     f(n,m) = 0                   n = 1;*     f(n,m) = [f(n-1,m) + m] % n     n > 1*/publicstatic void main(String[] args) {Q45圆圈中最后剩下的数字 test = new Q45圆圈中最后剩下的数字();System.out.println(test.LastNumber(5, 3));}publicint LastNumber(int n,int m){if(n < 1 || m < 1){return -1;}int last = 0;for(int i = 2; i <= n; i++){//循环删除第m个数last = (last + m) % i;}return last;}
}

Q45:圆圈中最后剩下的数字相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 卧槽!什么神仙行业月入10万,人才缺口30万?
  2. Hybird混合开发APP初学体验
  3. Firefox UI已迁移至Web Components
  4. 分组密码简介和五大分组模式
  5. 错误:在keystone中无法找到默认角色user_Kubernetes RBAC角色权限控制
  6. django模块导入/函数/中间件/MVC和MTV/CSRF
  7. 迷宫求解 java_迷宫求解算法(java版)
  8. ping的时候怎么暂停_dos命令pause教程,?暂停bat批处理脚本程序,?请按任意键继续...
  9. lib的编写与使用(C/C++)
  10. js 测试正则表达式
  11. 《ABAQUS 6.14超级学习手册》——2.2 特性模块(Property)
  12. 极小化极大(Minimax)算法原理
  13. macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
  14. 姐妹素数java_Java之姐妹素数
  15. 前方高能!公司来了一个low逼程序员
  16. Java手写AVL树(非常详细)
  17. Ubuntu完全教程
  18. c语言大地坐标系和空间直角坐标系的转换,空间直角坐标系与大地坐标系转换程序.doc...
  19. Thrift 在Windows环境下的编译与简单C++应用
  20. 日语促音和长音怎么打?

热门文章

  1. css实现文字连续光影效果
  2. windows 端口查看命令
  3. 「抄底 Android 内存优化 1」—— 虚拟内存
  4. 计算机专业英语考试试题及答案,计算机专业英语测试题及答案.doc
  5. 「开箱测评」TonyPi智能视觉人形机器人
  6. 安卓判断虚拟导航键是否显示
  7. 最新实用的网页加密源码+附四套模板
  8. 大量域名数据下载地址收集整理
  9. iphone软件TOP10排行榜
  10. java寻宝题目,直接带走的干货:2017新年寻宝题集