博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组完成约瑟夫环
阅读量:5842 次
发布时间:2019-06-18

本文共 979 字,大约阅读时间需要 3 分钟。

算法思路是

1 用一个变量j标记走到了了多少步,初始为0,表示走到了第一个数。

2、让一个指针每次都向前移动2个不为0的数,然后打印出这个数,再置这个数为0

3、当数组的每一项都为0的时候,说明已经全部找完了。

代码如下:

package algorithms.chapter1;public class YueSeFuCycle {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		int[] test = {1,2,3,4,5,7,8,9};		getOutItem(test, 2);	}	public static void getOutItem(int[] items, int interval){		int j = 0;					//在数组全部为0,时候跳出循环,j表示一共向前跑了多少步			//初始化的时候j为0,j				while(!isEmpty(items)){					//寻找正好寻到2个不为0的数的位置					int k = 0;					while(true){						if(items[j % items.length] != 0){							k++;						}						if(k == 2){							System.out.println(items[j % items.length]);							items[j % items.length] = 0;							break;						}						j++;											}									}								}					public static boolean isEmpty(int[] items){		boolean flag = true;		for(int i = 0; i < items.length; i++ ){			if(items[i] != 0){				flag =false;			}		}		return flag;	}	}

  

转载于:https://www.cnblogs.com/dongqiSilent/p/3443952.html

你可能感兴趣的文章
Spring Cloud Config服务器
查看>>
commonservice-config配置服务搭建
查看>>
连接池的意义及阿里Druid
查看>>
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019——亮点之WinForm篇
查看>>
全面的Spring Boot配置文件详解
查看>>
如何优雅地玩转分库分表
查看>>
Python递归函数与匿名函数
查看>>
我的友情链接
查看>>
CentOS添加永久静态路由
查看>>
mysql多实例的安装以及主从复制配置
查看>>
loadrunner安装运行一步一步来(多图)
查看>>
git请求报错 401
查看>>
动态追踪技术(四):基于 Linux bcc/BPF 实现 Go 程序动态追踪
查看>>
Cyber-Security: Linux 容器安全的十重境界
查看>>
监控工具htop的安装及使用
查看>>
Nodejs使用图灵机器人获取笑话
查看>>
【读书笔记】第三章 大型网站核心架构要素
查看>>
jvm参数设置
查看>>
易宝典文章——玩转Office 365中的Exchange Online服务 之十三 怎样管理Exchange Online的邮件用户和联系人...
查看>>
nexus 从Window迁移至Linux
查看>>