書上說這是著名的約瑟夫環問題。這個要頻繁刪除操作,所以用list做就很容易想到了。list是單向的,所以當迭代器走到尾部的時候,再讓它回到頭部就可以形成環。
1class
solution
24 auto next =++ f;//
定義乙個新的迭代器,儲存第乙個迭代器的下乙個的值。
25//
因為下一步有list的刪除操作會令第乙個定義的迭代器失效
26if (next ==li.end())
27 next =li.begin();
28 f--;
29li.erase(f);
30 f =next;31}
3233
return *f;34}
35 };
看到劍指offer上的第二種解法。將這個題目推到出乙個遞迴的公式。這樣關鍵是要想到遞迴,其次想到遞迴要會推導公式,數學好難,o(╥﹏╥)o不過這個**確實很簡潔,想清楚思路用這種方法做很有用。
1class
solution
12 };
劍指offer 孩子們的遊戲
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...
劍指 offer 孩子們的遊戲
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...
劍指Offer 孩子們的遊戲
題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任...