约瑟夫环 java实现
生活随笔
收集整理的這篇文章主要介紹了
约瑟夫环 java实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
曾經一次筆試,由于準備不足,前面所有題都打完了,但是最后一題,就是手寫約瑟夫環,我居然沒有寫出來,然后。。涼涼了。。
現在再來回顧一下:
問題:有100個人圍成一個圈,從1開始報數,報到14的這個人就要退出。然后其他人重新開始,從1報數,到14退出。問:最后剩下的是100人中的第幾個人?
package com; import java.util.ArrayList; import java.util.List; public class Main { public static int LastRemaining_Solution(int n, int m) {if(n == 0 || m == 0){return -1;}List list = new ArrayList();for(int i=1;i<=n;i++){list.add(i);}int i=0;for(int j = 1;j< n;j++){//每次循環時,求得將要退出的人在集合中的下標i = (i + m -1) % list.size();//將集合中代表該人的元素刪除list.remove(i);}System.out.println(list);int result = Integer.valueOf(list.get(0).toString());return result;} public static void main(String [] args){ int [] arr = {1,2,3,4,5}; int list = LastRemaining_Solution(100,7); System.out.println(list); } } 最關鍵的部分在于:最關鍵的部分在于index = (index+length-1) % length。創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的约瑟夫环 java实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑指offer 最小的k个数
- 下一篇: 主流机器学习模型模板代码+经验分享[xg