劍指offer 孩子們的遊戲(圓圈中最後剩下的數)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮物,並且不再回到圈中,從他的下一個小朋友開始,繼續0…m-1報數….這樣下去….直到剩下最後一個小朋友,可以不用表演,並且拿到牛客名貴的“名偵探柯南”典藏版(名額有限哦!!^_^)。請你試著想下,哪個小朋友會得到這份禮品呢?(注:小朋友的編號是從0到n-1)
class Solution {
public :
int LastRemaining_Solution(int n, int m)
{
if(n==0)
return -1;
else if(n==1)
return 0;
else
return (LastRemaining_Solution(n-1,m)+m)%n;
}
};
相關推薦
【劍指offer】62、圓圈中最後剩下的數字
== str rem 過程 開始 continue 最後一個元素 last main 題目 0~n-1這n個數字排成一個圓圈,從0開始,每次刪除第m個數字,求出圓圈裏剩下的最後一個數字 思路 直接用數組模擬圓圈,模擬刪除的過程 class Solution { publi
劍指offer第62:圓圈中最後剩下的數字
題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮品箱
劍指offer 46. 孩子們的遊戲(圓圈中最後剩下的數)
原題 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮
劍指Offer - 孩子們的遊戲(圓圈中最後剩下的數)(Java實現)
題目描述: 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌
牛客:劍指offer:孩子們的遊戲(圓圈中最後剩下的數) (Java)
轉自:http://blog.csdn.net/crazy__chen/article/details/45115911 題目描述: 解法1:找規律。首先定義最初的n個數字(0,1,…,n-1)中最後剩下的數字是關於n和m的方程為f(n,m)。在這n個數字中,第一個被刪除
劍指offer 孩子們的遊戲(圓圈中最後剩下的數)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列
劍指Offer46:孩子們的遊戲(圓圈中最後剩下的數)
思路: 第一個要刪除的是m-1,第二個要刪除是2m-1,第三個要刪除是3m-1,由於有n的限制即用求模來解決。 演算法中i=(m+i-1)%len(res),其中為何要減一,是因為已經從res刪除了一個數,res後面的數下標會在原來的基礎上減少1,所以2m-1的下標變成了2m-2,從而整個演
劍指offer-孩子們的遊戲
46.孩子們的遊戲 題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列
牛客(46)孩子們的遊戲(圓圈中最後剩下的數)
ini rem add 小遊戲 bsp -- size public nbsp // 題目描述 // 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。 // 其中,有個遊戲是這樣的
孩子們的遊戲(圓圈中最後剩下的數)/簡單約瑟夫環
1.數學遞推,遞迴,時間複雜度O(n) 結論: 分析: 下面用數學公式推導的方法,解決約瑟夫環經典問題。 第一步,這n個人我們給每一個人一個編號 0 ,1 ,2 ······ n-2,n-1 第二步,當第一輪遊戲結束後,這n個人少就變成了n-1個人 第三步,將第一輪結束後
孩子們的遊戲(圓圈中最後剩下的數)
題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小
孩子們的遊戲(圓圈中最後剩下的數) 約瑟夫環
題目描述:每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,讓編號為0的小朋友開始報數。每次喊到m-1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮
牛客網刷題之孩子們的遊戲(圓圈中最後剩下的數)
題目描述: 解題思路: 其實就是一個約瑟夫問題的變種: 問題描述:n個人(編號0~(n-1)),從0開始報數,報到(m-1)的退出,剩下的人 繼續從0開始報數。求勝利者的編號。 我們知道第一個人(編號一定是m%n-1) 出列之後,剩下的n-1
Java 實現孩子們的遊戲(圓圈中最後剩下的數)
每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指定一個數m,
劍指offer系列(十六)翻轉單詞順序列,撲克牌順子,孩子們的遊戲(圓圈中最後剩下的數)
翻轉單詞順序列 題目描述 牛客最近來了一個新員工Fish,每天早晨總是會拿著一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句
(劍指offer)孩子們的遊戲(圓圈中最後剩下的數)
時間限制:1秒 空間限制:32768K 熱度指數:128897 本題知識點: 模擬 題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的:首先,讓小朋友們圍成一個大圈。然後,他隨機指
【劍指offer】圓圈中最後剩下的數字,C++實現
一行 AC 個人 ron namespace itl i++ float color 原創博文,轉載請註明出處! # 題目 # 思路 本題即為典型的約瑟夫問題,通過遞推公式解決。 第一行表示每個人的下標,現在要從11個人中刪除報數為3的人,從圖
劍指offer——圓圈中最後剩下的數
本題屬於約瑟夫問題。核心是用取餘的方式表示所停的位置 class Solution: def LastRemaining_Solution(self,n,m): if n<1 or m<1: return -1 con =range(n) f=-1 s
【LeetCode & 劍指offer刷題】發散思維題3:62 圓圈中最後剩下的數字(約瑟夫環問題)
【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) 62 圓圈中最後剩下的數字(約瑟夫環問題) 題目描述 每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。HF作為牛客的資深元老
【劍指offer系列】 圓圈中最後剩下的數字___45
題目描述: 把0 ,1 ,……, n-1這n個數排成一個圓圈,從數字0開始,每次從這個圓圈中刪除第m個數字。 求這個圓圈剩下的最後一個數字 示例: 輸入:n