圓圈中最後剩下的數字

在這裏插入圖片描述
如果開始圈子裏只有一個人,就返回0;
如果不是一個人,那麼刪去一個人後 狀態變爲dp【n-1,m】 ,原先 第m+1位置的人因爲m沒了坐在了第m的位置 並且從他開始編號爲0 所以是m向0轉移
所以調用(dp(n-1,m)+m)%n【遞推】

class Solution {
public:
    int lastRemaining(int n, int m){
        if(n==1)    return 0;
        return (lastRemaining(n-1,m)+m)%n;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章