牛客題霸NC132環形連結串列的約瑟夫問題Java題解

雲飛揚°發表於2020-11-27

牛客題霸NC132環形連結串列的約瑟夫問題Java題解

https://www.nowcoder.com/practice/41c399fdb6004b31a6cbb047c641ed8a?tpId=117&&tqId=35273&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

方法:利用數學公式反推
解題思路:反推過程:(當前index + m) % 上一輪剩餘數字的個數。

import java.util.*;
 
 
public class Solution {
    /**
     *
     * @param n int整型
     * @param m int整型
     * @return int整型
     */
    public int ysf (int n, int m) {
         int res = 0;
        //最後一輪剩下2個人,所以從2開始反推
        for (int i = 2; i <= n; i++) {
            res = (res + m) % i;
        }
        return res+1;
    }
}

 

相關文章