Re: [閒聊] 每日leetcode已回收
https://leetcode.com/problems/reveal-cards-in-increasing-order
950. Reveal Cards In Increasing Order
給你一堆卡牌,每個卡牌你可以隨便排序,初始狀態下卡牌都是覆蓋的,你一輪你可以:
1.翻開一張卡牌並移除他
2.將沒被覆蓋的卡牌(如果有)移到牌組末尾
3.不斷重複直到所有卡牌都被移除
求出一個順序可以確保每次移除的卡牌都是遞增的。
思路:
1.先把牌組排序確定每次要抽出來的牌順序。
2.用queue模擬抽排和洗牌,找出下次抽出的位置,然後按照順序把牌放進去。
py code:
---------------------------------------------
class Solution:
def deckRevealedIncreasing(self, deck: List[int]) -> List[int]:
deck.sort(key = lambda x:-x)
dq = deque([i for i in range(len(deck))])
res = [0] * len(deck)
while dq:
idx = dq.popleft()
res[idx] = deck.pop()
if dq:
dq.append(dq.popleft())
return res
---------------------------------------------
一開始以為可以找出某種規律 想了很久結果還是只能模擬==
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.139.229.185 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1712715906.A.736.html
推
04/10 11:33,
1年前
, 1F
04/10 11:33, 1F
討論串 (同標題文章)
完整討論串 (本文為第 108 之 1548 篇):