【题目】0,1,。。。n排成一个圈,从0开始每次删除第m个数,求圆圈最后个数。
* 【思路】1 用数组模拟圆圈。当数到最后一个数即index==n时,令index==0 重头开始遍历;
* 当遇到已经被删除的数时nums[index]==-1,跳过继续;
* 当走到指定m个数的时候,就将其删除掉,nums[index]=-1;

 package com.exe10.offer;

 /**
* 【题目】0,1,。。。n排成一个圈,从0开始每次删除第m个数,求圆圈最后个数。
* 【思路】1 用数组模拟圆圈。当数到最后一个数即index==n时,令index==0 重头开始遍历;
* 当遇到已经被删除的数时nums[index]==-1,跳过继续;
* 当走到指定m个数的时候,就将其删除掉,nums[index]=-1;
* @author WGS
*
*/
public class LastNumberInCircle { public int lastRemainInCircle(int n,int m){
if(m<1 || n<1) return -1;
int[] nums=new int[n];
int indexInNums=-1;
int count=0;//计步器
int length=n;
while(length>0){
indexInNums++;
//
if(indexInNums==n)
indexInNums=0;
//
if(nums[indexInNums]==-1)
continue;
count++;//计步器++;
//
if(count==m){
nums[indexInNums]=-1;
count=0;
length--;
}
}
return indexInNums; } public static void main(String[] args) {
int l = new LastNumberInCircle().lastRemainInCircle(5, 3);
System.out.println(l);
} }

最新文章

  1. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
  2. JSON.stringify()和JSON.parse()
  3. 试听笔记:javascript入门精通
  4. 自适应网页设计(Responsive Web Design)(转)
  5. Java反射库中的安全漏洞在30个月后终于修复了(转)
  6. WinForm 国际化开发一例
  7. C Socket初探 - 加入多线程支持,限制最大接入客户端个数
  8. 2017最新修复福运来完整运营中时时彩源码PC+手机版本功能齐全
  9. JavaWeb程序连接SQLserver数据库
  10. ASP.NET Core 一步步搭建个人网站(2)_一键部署和用户注册登录
  11. vue2 3d 切换器
  12. Spring中关于AOP的实践之AspectJ方式实现通知
  13. python语法_元组
  14. gdb调试原理及qemu中的gdbserver
  15. uml活动图
  16. Delphi 工具条按钮上的下拉菜单
  17. ubuntu下安装go环境
  18. python-享元模式
  19. ctags相关
  20. 科比投球预测-python实例

热门文章

  1. Mapnik 教程
  2. js 实现复制到剪切板 复制按钮兼容各大浏览器
  3. python 文件操作,seek, tell, name...
  4. Sprint第二个冲刺(第五天)
  5. ZOJ 1002 Fire Net
  6. Spring MVC 通过@Value注解读取.properties配置内容
  7. HTML DOM部分---document对象;
  8. C#部分---语言经典题目——兔子生兔子
  9. 1-4-2 Windows数据类型与重要数据结构
  10. Windows编程基础