劍指Offer(Python多種思路實現):圓圈中最後剩下的數字

劍指Offer(Python多種思路實現):圓圈中最後剩下的數字

面試62題:

題目:圓圈中最後剩下的數字

題:0,1,...,n-1這n個數字排成一個圓圈,從數字0開始,每次從這個圓圈裏刪除第m個數字。求出這個圓圈裏剩下的最後一個數字。

解題思路一:約瑟夫環問題。 

class Solution:
    def LastRemaining_Solution(self, n, m):
        # write code here
        if n<1 or m<1:
            return -1
        res=0
        for i in range(2,n+1):
            res=(res+m)%i
        return res

解題思路二:

def LastRemaining_Solution(self, n, m):
    if n<=0 or m<=0:
        return -1
    last_num = 0
    for i in range(2, n+1):
        last_num = (last_num+m) % i
    return last_num

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章