[LC] 846. Hand of Straights

Alice has a hand of cards, given as an array of integers.

Now she wants to rearrange the cards into groups so that each group is size W, and consists of W consecutive cards.

Return true if and only if she can.

 

Example 1:

Input: hand = [1,2,3,6,2,3,4,7,8], W = 3
Output: true
Explanation: Alice's hand can be rearranged as [1,2,3],[2,3,4],[6,7,8].

class Solution {
    public boolean isNStraightHand(int[] hand, int W) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        for (int num : hand) {
            pq.offer(num);
        }
        while (!pq.isEmpty()) {
            int num = pq.poll();
            for (int i = 1; i < W; i++) {
                if (pq.remove(i + num)) {
                    continue;
                } else {
                    return false;
                }
            }
        }
        return true;
    }
}

 

posted @ 2020-06-07 21:59  xuan_abc  阅读(108)  评论(0编辑  收藏  举报