[leetcode] 950. Reveal Cards In Increasing Order

网友投稿 1200 2022-08-22

[leetcode] 950. Reveal Cards In Increasing Order

[leetcode] 950. Reveal Cards In Increasing Order

Description

In a deck of cards, every card has a unique integer. You can order the deck in any order you want.

Initially, all the cards start face down (unrevealed) in one deck.

Now, you do the following steps repeatedly, until all cards are revealed:

Take the top card of the deck, reveal it, and take it out of the deck.If there are still cards in the deck, put the next top card of the deck at the bottom of the deck.If there are still unrevealed cards, go back to step 1. Otherwise, stop.Return an ordering of the deck that would reveal the cards in increasing order.

The first entry in the answer is considered to be the top of the deck. Example 1:

Input: [17,13,11,2,3,5,7]Output: [2,13,3,11,5,17,7]Explanation: We get the deck in the order [17,13,11,2,3,5,7] (this order doesn't matter), and reorder it.After reordering, the deck starts as [2,13,3,11,5,17,7], where 2 is the top of the deck.We reveal 2, and move 13 to the bottom. The deck is now [3,11,5,17,7,13].We reveal 3, and move 11 to the bottom. The deck is now [5,17,7,13,11].We reveal 5, and move 17 to the bottom. The deck is now [7,13,11,17].We reveal 7, and move 13 to the bottom. The deck is now [11,17,13].We reveal 11, and move 17 to the bottom. The deck is now [13,17].We reveal 13, and move 17 to the bottom. The deck is now [17].We reveal 17.Since all the cards revealed are in increasing order, the answer is correct.

Note:

1 <= A.length <= 1000.1 <= A[i] <= 10^6.A[i] != A[j] for all i != j

分析

题目的意思是:一开始我还没搞懂这是什么意思,有点想不明白,后面发现是要模拟这种入栈出栈的操作,大概就是每出去一个数,就把下一个数放到末尾,知道这个数组为空为止。我还以为要排序啥的呢。所以解法也很直接,按照这个模拟就行了。

代码

class Solution: def deckRevealedIncreasing(self, deck: List[int]) -> List[int]: n=len(deck) index=collections.deque(range(n)) res=[None]*n for card in sorted(deck): res[index.popleft()]=card if(index): index.append(index.popleft()) return res

参考文献

​​[LeetCode]Approach 1: Simulation​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android应用安全风险与防范(安卓风险应用如何解决)
下一篇:[leetcode] 1160. Find Words That Can Be Formed by Characters
相关文章

 发表评论

暂时没有评论,来抢沙发吧~