劍指offer——圓圈中最後剩下的數字

一、若是經過環形列表去模擬圓圈的話,最後時間複雜度爲O(mn),並且還須要一個輔助鏈表來模擬圓圈,空間複雜度爲O(n)。spa

二、經過找出遞推公式的方法,求得遞推公式爲code


時間複雜度爲O(n),空間複雜度爲O(1)。blog

 

#include<stdio.h>

int LastRemaining(int n,int m)
{
    if(n<1 || m<1)
        return 0;
    int last=0;
    for (int i=2;i<=n;i++)
    {
        last=(last+m)%i;
    }
    return last;
}

int main()
{
    printf("%d\n",LastRemaining(12,2));
    return 0;
}
相關文章
相關標籤/搜索