精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《smart0eddie (smart0eddie)》之銘言: : 2024-07-06 : 2582. Pass the Pillow : There are n people standing in a line labeled from 1 to n. The first person : in the line is holding a pillow initially. Every second, the person holding : the pillow passes it to the next person standing in the line. Once the pillow : reaches the end of the line, the direction changes, and people continue : passing the pillow in the opposite direction. : For example, once the pillow reaches the nth person they pass it to the n : - 1th person, then to the n - 2th person and so on. : Given the two positive integers n and time, return the index of the person : holding the pillow after time seconds. : 100%的是用暴力解 - - : 這其實是數學問題 : 走一趟要 n-1 秒 : 走到底折返 : 所以先 time / (n-1) 看可以走完奇數趟還偶數趟 : 奇數反走 偶數正走 : 然後 time % (n-1) 看要多走幾格 : int passThePillow(int n, int time) { : int dir = (time / (n - 1)) % 2; : int pos = time % (n - 1); : if (dir) return n - pos; : else return pos + 1; : } 思路: 第一個念頭就直接模擬 最大值才1000 應該不會TLE 正常解的思路差不多 這題就數學問題 Python Code: class Solution: def passThePillow(self, n: int, time: int) -> int: if (time // (n-1)) % 2 == 0: return time%(n-1)+1 else: return n - (time%(n-1)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.160.111 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1720233580.A.DFE.html
SecondRun: 大師 球內推 07/06 10:40
JIWP: 別倦了,這題好難 07/06 10:42
sustainer123: ez就直接硬上 暴力解只要3分鐘就能搞定 07/06 10:43
sustainer123: 我無業遊民 07/06 10:43
sustainer123: 話說二跑要共享活蝦ㄇ 我玩得差不多了 07/06 10:44
JIWP: 我要 07/06 10:44
sustainer123: 你都破完惹 07/06 10:51
JIWP: 我要偷玩你的小黃油 07/06 10:54