zoukankan      html  css  js  c++  java
  • 孩子们的游戏(圆圈中最后剩下的数) 约瑟夫环

    题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!^_^)。请你试着想下,哪个小朋友会得到这份礼品呢?(注:小朋友的编号是从0到n-1)

    实现语言:Java

    import java.util.LinkedList;
    public class Solution {
        public int LastRemaining_Solution(int n, int m) {
            LinkedList<Integer> list=new LinkedList<Integer>();
            for(int i=0;i<n;++i){
                list.add(i);
            }
            int index=0;
            while(list.size()>1){
                index=(index+m-1)%list.size();
                list.remove(index);
            }
            return list.size()==1?list.get(0):-1;
        }
    }
    
  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/xidian2014/p/10201077.html
Copyright © 2011-2022 走看看