- Reveal Cards In Increasing Order
950. Reveal Cards In Increasing Order
class Solution {
public:
vector<int> deckRevealedIncreasing(vector<int>& deck) {
deque<int> dq;
sort(begin(deck), end(deck));
auto it = rbegin(deck);
while (it != rend(deck)) {
if (!dq.empty()) {
dq.push_front(dq.back());
dq.pop_back();
}
dq.push_front(*it++);
}
return {dq.begin(), dq.end()};
}
};
문제의 역순을 시뮬레이션 하면 된다.
리스트의 뒤쪽 값을 앞쪽으로 옮긴후 정렬한 deck 의 큰 값부터 리스트의 앞쪽에 넣는것을 반복 한다.
Time: O(n*log(n))
- 정렬하는데에 n*log(n)
Space: O(n)
- 중간에 deque 사용한게 n 이긴 한데, output 에 처리했으면 1로도 할수는 있다.
댓글남기기