约瑟夫环 java实现
生活随笔
收集整理的這篇文章主要介紹了
约瑟夫环 java实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
曾經(jīng)一次筆試,由于準(zhǔn)備不足,前面所有題都打完了,但是最后一題,就是手寫(xiě)約瑟夫環(huán),我居然沒(méi)有寫(xiě)出來(lái),然后。。涼涼了。。
現(xiàn)在再來(lái)回顧一下:
問(wèn)題:有100個(gè)人圍成一個(gè)圈,從1開(kāi)始報(bào)數(shù),報(bào)到14的這個(gè)人就要退出。然后其他人重新開(kāi)始,從1報(bào)數(shù),到14退出。問(wèn):最后剩下的是100人中的第幾個(gè)人?
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++){//每次循環(huán)時(shí),求得將要退出的人在集合中的下標(biāo)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); } } 最關(guān)鍵的部分在于:最關(guān)鍵的部分在于index = (index+length-1) % length。創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的约瑟夫环 java实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 剑指offer 最小的k个数
- 下一篇: 主流机器学习模型模板代码+经验分享[xg