Find Players With Zero or One Loss

给一个数组,里面是比赛结果[winner, loser], 求两个数组, 第一个是没有输过人的比赛, 第二个是只输了一场的比赛. 要求这个人起码参赛了.

首先判断是否参赛, 用set, 然后记录比赛的loser情况, 即可.

class Solution {
    public List<List<Integer>> findWinners(int[][] matches) {
        int[] check = new int[200000];
        Set<Integer> set = new HashSet<>();
        for(int[] m : matches){
            set.add(m[0]);
            set.add(m[1]);
            check[m[1]]++;
        }
        List<Integer> zero = new ArrayList<>();
        List<Integer> one = new ArrayList<>();
        List<List<Integer>> res = new ArrayList<>();
        for(int i = 0; i < check.length; i++){
            if(!set.contains(i))
                continue;
            if(check[i] == 1)
                one.add(i);
            else if(check[i] == 0)
                zero.add(i);
        }
        res.add(zero);
        res.add(one);
        return res;
    }
}