LeetCode-in-Java

3238. Find the Number of Winning Players

Easy

You are given an integer n representing the number of players in a game and a 2D array pick where pick[i] = [xi, yi] represents that the player xi picked a ball of color yi.

Player i wins the game if they pick strictly more than i balls of the same color. In other words,

Return the number of players who win the game.

Note that multiple players can win the game.

Example 1:

Input: n = 4, pick = [[0,0],[1,0],[1,0],[2,1],[2,1],[2,0]]

Output: 2

Explanation:

Player 0 and player 1 win the game, while players 2 and 3 do not win.

Example 2:

Input: n = 5, pick = [[1,1],[1,2],[1,3],[1,4]]

Output: 0

Explanation:

No player wins the game.

Example 3:

Input: n = 5, pick = [[1,1],[2,4],[2,4],[2,4]]

Output: 1

Explanation:

Player 2 wins the game by picking 3 balls with color 4.

Constraints:

Solution

@SuppressWarnings({"unused", "java:S1172"})
public class Solution {
    public int winningPlayerCount(int n, int[][] pick) {
        int[][] dp = new int[11][11];
        for (int[] ints : pick) {
            int p = ints[0];
            int pi = ints[1];
            dp[p][pi] += 1;
        }
        int count = 0;
        for (int i = 0; i < 11; i++) {
            boolean win = false;
            for (int j = 0; j < 11; j++) {
                if (dp[i][j] >= i + 1) {
                    win = true;
                    break;
                }
            }
            if (win) {
                count += 1;
            }
        }
        return count;
    }
}