作者sustainer123 (caster )
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Sat Jul 6 10:39:37 2024
※ 引述《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