剑指offer-面试题45-圆圈中最后剩下的数字
来源:互联网 发布:ubuntu 怎么卸载qq 编辑:程序博客网 时间:2024/05/16 04:32
package case45_LastNumberInCircle;import java.util.LinkedList;/** * 题目:0,1,...,n-1这n个数字排成1个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。 * * @author WangSai * */public class LastNumberInCircle {public static void main(String[] args) {// TODO Auto-generated method stubint n = 40000;int m = 997;System.out.println(lastRemaining1(n, m));}/** * 方法1:利用环形链表 * * @param n,数字的个数 * @param m,第m个数字 * @return 最后剩下的数字 */private static int lastRemaining1(int n, int m) {// 异常值检测if (n < 1 || m < 1) {return -1;}// 构建链表LinkedList<Integer> list = new LinkedList<Integer>();for (int i = 0; i < n; i++) {list.add(i);}// 当前数字在链表中的位置int index = 0;while (list.size() > 1) {// 移动m-1次,就可以到达第m个数for (int i = 1; i <= m - 1; i++) {index++;index %= list.size();}// 删除list.remove(index);if (index == list.size()) {index = 0;}}return list.get(0);}}
0 0
- 剑指Offer:面试题45 圆圈中最后剩下的数字
- 剑指offer 面试题45—圆圈中最后剩下的数字(约瑟夫环)
- 《剑指Offer》学习笔记--面试题45:圆圈中最后剩下的数字
- 【剑指Offer学习】【面试题45:圆圈中最后剩下的数字(约瑟夫环问题)】
- 剑指Offer面试题45(Java版):圆圈中最后剩下的数字
- 剑指offer之面试题45圆圈中最后剩下的数字
- 剑指Offer面试题45:圆圈中最后剩下的数字
- 剑指offer——面试题45:圆圈中最后剩下的数字
- 剑指Offer系列-面试题45:圆圈中最后剩下的数字
- 剑指offer-面试题45-圆圈中最后剩下的数字
- 剑指offer 面试题45 圆圈中最后剩下的数字
- 剑指offer面试题45 圆圈中最后剩下的数字(java实现)
- 【剑指Offer】面试题45:圆圈中最后剩下的数字
- 剑指offer面试题 圆圈中最后剩下的数字(约瑟夫环问题)
- 面试题45:圆圈中最后剩下的数字
- 面试题45:圆圈中最后剩下的数字
- 面试题45:圆圈中最后剩下的数字
- 面试题45:圆圈中最后剩下的数字
- POJ 3349 Snowflake Snow Snowflaks <数的哈希>
- 剑指offer-面试题46-求1+2+3+...+n
- Oracle数据库中的约束
- 应用层协议
- 关于lstm和gru的一些简单资料,讲得比较容易理解
- 剑指offer-面试题45-圆圈中最后剩下的数字
- 递归问题的处理
- 关于新版ADT创建项目时出现appcompat_v7的问题
- 鸟哥的linux私房菜学习笔记5
- 147.泡泡窗实现下拉菜单条
- 贪吃蛇智能版(专家)
- zoj2563 Long Dominoes(状压dp)
- BeanUtils
- macOS逆向开发之class-dump