Re: [閒聊] 每日leetcode已回收
看板Marginalman作者sustainer123 (caster )時間1年前 (2024/07/06 10:39)推噓4(4推 0噓 4→)留言8則, 3人參與討論串453/1554 (看更多)
※ 引述《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
推
07/06 10:40,
1年前
, 1F
07/06 10:40, 1F
推
07/06 10:42,
1年前
, 2F
07/06 10:42, 2F
→
07/06 10:43,
1年前
, 3F
07/06 10:43, 3F
→
07/06 10:43,
1年前
, 4F
07/06 10:43, 4F
→
07/06 10:44,
1年前
, 5F
07/06 10:44, 5F
推
07/06 10:44,
1年前
, 6F
07/06 10:44, 6F
→
07/06 10:51,
1年前
, 7F
07/06 10:51, 7F
推
07/06 10:54,
1年前
, 8F
07/06 10:54, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 453 之 1554 篇):