作者DJYOMIYAHINA (通通打死)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Mon Jul 8 22:38:56 2024
乖乖偷看一下答案
總之先改成0-index,modulo比較不會有問題
當你移除了一個element之後,問題就可以退化成findTheWinner(n-1,k)
不過是從k (0-index) 開始數的findTheWinner(n-1,k)
也可以當成是從0開始數的findTheWinner(n-1,k),最後再+k
所以findTheWinner(n,k) = (findTheWinner(n-1,k)+k) % n
然後記得處理轉圈問題,就單純%n就可以
終止條件就是當只剩下一個人(n==1)時,回傳0 (0-index)
最後記得+1回到1-index
--
到底誰會這樣想問題 點點點
剩我是蠢蛋了
def findTheWinner(self, n: int, k: int) -> int:
def help(n,k):
if n == 1:
return 0
return (help(n-1,k)+k)%n
return help(n,k)+1
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.37.69 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1720449538.A.CA6.html
推 ShindoAmane: 發哥 別卷了 07/08 22:42
推 CanIndulgeMe: 技術大神 07/08 22:42
→ DJYOMIYAHINA: 唉我覺得我好像想錯了 07/08 22:44