题解 | #环形链表的约瑟夫问题#

环形链表的约瑟夫问题

http://www.nowcoder.com/practice/41c399fdb6004b31a6cbb047c641ed8a



public class Solution {
    /**
     * 
     * @param n int整型 
     * @param m int整型 
     * @return int整型
     */
    public int ysf (int n, int m) {
        // write code here
        //从编号为 1 的人开始报数,报到 m 的人离开 即每次都是index = m -1 
        ArrayList<Integer> result = new ArrayList<>();
        for(int i = 1;i<=n;i++){
            result.add(i);
        }
         int id = 0;
        while(n >1){
            id = ( id + m - 1) % n ;
            result.remove(id);
            n--;
            
        }
        return result.get(0);
    }
}
全部评论

相关推荐

一颗宏心:华为HR晚上过了十二点后还给我法消息。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:28
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务