2225. Find Players With Zero or One Losses LeetCode Solution
In this guide, you will get 2225. Find Players With Zero or One Losses LeetCode Solution with the best time and space complexity. The solution to Find Players With Zero or One Losses problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Find Players With Zero or One Losses solution in C++
- Find Players With Zero or One Losses solution in Java
- Find Players With Zero or One Losses solution in Python
- Additional Resources

Problem Statement of Find Players With Zero or One Losses
You are given an integer array matches where matches[i] = [winneri, loseri] indicates that the player winneri defeated player loseri in a match.
Return a list answer of size 2 where:
answer[0] is a list of all players that have not lost any matches.
answer[1] is a list of all players that have lost exactly one match.
The values in the two lists should be returned in increasing order.
Note:
You should only consider the players that have played at least one match.
The testcases will be generated such that no two matches will have the same outcome.
Example 1:
Input: matches = [[1,3],[2,3],[3,6],[5,6],[5,7],[4,5],[4,8],[4,9],[10,4],[10,9]]
Output: [[1,2,10],[4,5,7,8]]
Explanation:
Players 1, 2, and 10 have not lost any matches.
Players 4, 5, 7, and 8 each have lost one match.
Players 3, 6, and 9 each have lost two matches.
Thus, answer[0] = [1,2,10] and answer[1] = [4,5,7,8].
Example 2:
Input: matches = [[2,3],[1,3],[5,4],[6,4]]
Output: [[1,2,5,6],[]]
Explanation:
Players 1, 2, 5, and 6 have not lost any matches.
Players 3 and 4 each have lost two matches.
Thus, answer[0] = [1,2,5,6] and answer[1] = [].
Constraints:
1 <= matches.length <= 105
matches[i].length == 2
1 <= winneri, loseri <= 105
winneri != loseri
All matches[i] are unique.
Complexity Analysis
- Time Complexity: O(n\log n)
- Space Complexity: O(n)
2225. Find Players With Zero or One Losses LeetCode Solution in C++
class Solution {
public:
vector<vector<int>> findWinners(vector<vector<int>>& matches) {
vector<vector<int>> ans(2);
map<int, int> lossesCount;
for (const vector<int>& m : matches) {
const int winner = m[0];
const int loser = m[1];
if (!lossesCount.contains(winner))
lossesCount[winner] = 0;
++lossesCount[loser];
}
for (const auto& [player, nLosses] : lossesCount)
if (nLosses < 2)
ans[nLosses].push_back(player);
return ans;
}
};
/* code provided by PROGIEZ */
2225. Find Players With Zero or One Losses LeetCode Solution in Java
class Solution {
public List<List<Integer>> findWinners(int[][] matches) {
List<List<Integer>> ans = Arrays.asList(new ArrayList<>(), new ArrayList<>());
Map<Integer, Integer> lossesCount = new TreeMap<>();
for (int[] m : matches) {
final int winner = m[0];
final int loser = m[1];
if (!lossesCount.containsKey(winner))
lossesCount.put(winner, 0);
lossesCount.merge(loser, 1, Integer::sum);
}
for (final int player : lossesCount.keySet()) {
final int nLosses = lossesCount.get(player);
if (nLosses < 2)
ans.get(nLosses).add(player);
}
return ans;
}
}
// code provided by PROGIEZ
2225. Find Players With Zero or One Losses LeetCode Solution in Python
class Solution:
def findWinners(self, matches: list[list[int]]) -> list[list[int]]:
ans = [[] for _ in range(2)]
lossesCount = collections.Counter()
for winner, loser in matches:
if winner not in lossesCount:
lossesCount[winner] = 0
lossesCount[loser] += 1
for player, nLosses in lossesCount.items():
if nLosses < 2:
ans[nLosses].append(player)
return [sorted(ans[0]), sorted(ans[1])]
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.