三种方法

约瑟夫环

http://www.nowcoder.com/questionTerminal/b28d83bef5414b7f814ae76c66b66ff8

import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int k = cin.nextInt();
        ListNode head = null;
        ListNode curr = null;
        ListNode help = null; 
        //生成约瑟夫环
        for (int i = 0; i < n; i++) {
            ListNode listNode = new ListNode(i);
            if (i == 0) {
                head = listNode;
                head.next = head;
                curr = head;
            } else {
                curr.next = listNode;
                listNode.next = head;
                curr = listNode;
            }
            if (i == n - 1) {
                help = curr;
            }
        }
        while (head != help) {
            for (int i = 0; i < k - 1; i++) {
                head = head.next;
                help = help.next;
            }
            head = head.next;
            help.next = head;
        }
        System.out.println(head.n);
    }

}

class ListNode
{
    int n;
    ListNode next;

    public ListNode(int i)
    {
        this.n = i;
    }
}
全部评论

相关推荐

01-17 10:48
门头沟学院 Java
xxxxOxo:这公司幽默得很,要了简历半天一点动静都没有,过一会就给你发个邮件让你做测试,做完又没后文了,纯溜人
点赞 评论 收藏
分享
逆流河上万仙退:如果是能有面试的话应该简历没啥问题 争取表现好一点然后到岗时间实习天数往长了说 先看看能不能有offer
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务