在线编程--约瑟夫问题II
2016-05-06 19:12
423 查看
题目描述
约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。
给定一个int n,代表游戏的人数。请返回最后一个人的编号
测试样例:
5
返回:5
约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。
给定一个int n,代表游戏的人数。请返回最后一个人的编号
测试样例:
5
返回:5
if(n<1){ return -1; } LinkedList<Integer> list=new LinkedList<Integer>(); for(int i=1;i<=n;i++){ list.add(i); } int round=2,cur=0; //round 轮数 int k=0; while(list.size()>1){ k=0; while(list.size()>1&&list.size()>k){ cur=(cur+1)%round; if(cur!=1){ list.remove(k); } else { k++; } } round++; cur=0; if(list.size()>1){ int last=list.removeLast(); list.addFirst(last); } } return list.pop(); }
相关文章推荐
- Django 实现用户注册和登录
- java的properties配置文件
- Java判断当前用户数及当前登录用户数工具类-session原理
- Error from VB excel macro code - msxml3.dll -2146697211 The system cannot locate the resource specif
- Spring MVC程序中得到静态资源文件css,js,图片 文件的路径
- xcode 中代码块存放位置
- Java多线程之-----实现自己的ThreadFactory
- 20145312 《Java程序设计》第十周学习总结
- spring自动扫描机制
- 机器学习算法---kNN算法
- windows下安装python科学计算环境,numpy scipy scikit ,matplotlib等
- Asp.net 面向接口可扩展框架之“Mvc扩展框架及DI”
- 关于SpringMVC的后台调试获取的值为空
- 20. Valid Parentheses-leetcode-java
- 21. Merge Two Sorted Lists-leetcode-java
- 28. Implement strStr()-leetcode-java
- ubuntu建立qt的默认打开方式
- 50. Pow(x, n)-leetcode-java
- 56. Merge Intervals-leetcode-java
- Ehcache是现在最流行的纯Java开源缓存框架