Q45:圆圈中最后剩下的数字
备注:感觉这道题目的代码虽少,但理解起来还是有一定的难度,大家最好用纸和笔算算,仔细找一下映射前后函数的变化,是如何推导出递归式的。
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:圆圈中最后剩下的数字相关推荐
- [剑指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 ...
- 剑指offer——面试题45:圆圈中最后剩下的数字(孩子们的游戏)
剑指offer--面试题45:圆圈中最后剩下的数字(孩子们的游戏) Solution1: 当年第一遍做时,自己想的垃圾算法 class Solution { public:int LastRemain ...
- LeetCode 面试题62. 圆圈中最后剩下的数字 详细题解
面试题62. 圆圈中最后剩下的数字 难度 简单 0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数 ...
- 46. 孩子们的游戏-圆圈中最后剩下的数字
题目描述: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机 ...
- 【算法-剑指 Offer】62. 圆圈中最后剩下的数字(环形链表;约瑟夫环;动态规划)
剑指 Offer 62. 圆圈中最后剩下的数字 - 力扣(LeetCode) 发布:2021年9月12日12:18:52 问题描述及示例 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每 ...
- leetcode 面试题62. 圆圈中最后剩下的数字
面试题62. 圆圈中最后剩下的数字 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 例如,0.1.2.3.4这5个数字组成一个 ...
最新文章
- 卧槽!什么神仙行业月入10万,人才缺口30万?
- Hybird混合开发APP初学体验
- Firefox UI已迁移至Web Components
- 分组密码简介和五大分组模式
- 错误:在keystone中无法找到默认角色user_Kubernetes RBAC角色权限控制
- django模块导入/函数/中间件/MVC和MTV/CSRF
- 迷宫求解 java_迷宫求解算法(java版)
- ping的时候怎么暂停_dos命令pause教程,?暂停bat批处理脚本程序,?请按任意键继续...
- lib的编写与使用(C/C++)
- js 测试正则表达式
- 《ABAQUS 6.14超级学习手册》——2.2 特性模块(Property)
- 极小化极大(Minimax)算法原理
- macos安装盘第三方工具制作_制作 macOS Mojave U盘USB启动安装盘方法教程 (全新安装 Mac 系统)...
- 姐妹素数java_Java之姐妹素数
- 前方高能!公司来了一个low逼程序员
- Java手写AVL树(非常详细)
- Ubuntu完全教程
- c语言大地坐标系和空间直角坐标系的转换,空间直角坐标系与大地坐标系转换程序.doc...
- Thrift 在Windows环境下的编译与简单C++应用
- 日语促音和长音怎么打?