Re: [閒聊] 每日leetcode
看板Marginalman作者sustainer123 (caster )時間1年前 (2024/09/05 09:22)推噓1(1推 0噓 1→)留言2則, 2人參與討論串812/1548 (看更多)
※ 引述《DJYOMIYAHINA (通通打死)》之銘言:
: 有一大坨比我快十倍的不知道怎麼用的==
: 但我看答案都差不多ㄚ
: 還是有改測資
: def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:
: m = len(rolls)
: summation = mean*(n+m)
: sum_n = summation - sum(rolls)
: if sum_n<n or sum_n>6*n:
: return []
: res = sum_n-(sum_n//n)*n
: ans = [(sum_n//n)+1] * res + [(sum_n//n)] * (n-res)
: return ans
思路:
先求(n+m)總和跟m總和的差值
然後 求n的平均 餘數後面慢慢加上去
另外 裡面的元素限定1-6 所以就加個if判斷
Python Code:
class Solution:
def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:
diff = mean * (len(rolls) + n) - sum(rolls)
diff_avg = diff // n
space = (6 - diff_avg) * n
remainder = diff % n
result = []
if diff < n or diff > 6 * n or remainder > space:
return result
for _ in range(n):
if remainder > 6 - diff_avg:
remainder -= 6 - diff_avg
result.append(6)
else:
result.append(diff_avg + remainder)
remainder = 0
return result
寫得狗幹醜 我就這樣了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.160.111 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1725499333.A.B6F.html
→
09/05 09:22,
1年前
, 1F
09/05 09:22, 1F
推
09/05 09:51,
1年前
, 2F
09/05 09:51, 2F
討論串 (同標題文章)