约瑟夫环解决

package com;

import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("unchecked")
public class Yuesefu {
	public static void main(String[] args) {
		List oldlist = new ArrayList();
		for (int i = 1; i <= 10; i++) {
			oldlist.add(i);
		}
		List newlist = new Yuesefu().yue2(oldlist, 3);
		for (Object t : newlist) {
			System.out.println((Integer) t);
		}

	}
	
	public List yue2(List oldlist, int k) {
		List newlist = new ArrayList();
		int index = -1;
		while (oldlist.size() > 0) {
			// 执行删除添加操作
			index = index + k;
			if (index >= oldlist.size()) {
				index = index % oldlist.size();
			}
			Integer temp = (Integer) oldlist.get(index);
			oldlist.remove(index);
			index -= 1;
			newlist.add(temp);

		}
		return newlist;
	}

}

 

 

    原文作者:约瑟夫环问题
    原文地址: https://blog.csdn.net/wankunde/article/details/83809653
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞