-
发表于 2024.05.22
-
使用哈希表记录每个玩家的负场次数即可,然后再有序遍历(避免结果数组需要排序)哈希表的键输出即可。
由于有些玩家从来没输过,如果哈希表仅保存负者的数据是不够的,因为不清楚到底有几个玩家,所以遍历比赛数据时,如果赢家没有在哈希表时,则显式将其初始化为0。
class Solution: def findWinners(self, matches: List[List[int]]) -> List[List[int]]: # 玩家 -> 输的次数 lose_cnt_mapping = {} for u, v in matches: # 如果赢家没有在字典内, 也把它放进去, 方便后面遍历的时候能找到 # 因为不清楚到底有几个玩家 lose_cnt_mapping[u] = lose_cnt_mapping.get(u, 0) lose_cnt_mapping[v] = lose_cnt_mapping.get(v, 0) + 1 all_win_players, lose_one_match_players = [], [] # 有序遍历字典的键 for player in sorted(lose_cnt_mapping.keys()): if lose_cnt_mapping[player] == 0: all_win_players.append(player) elif lose_cnt_mapping[player] == 1: lose_one_match_players.append(player) return [all_win_players, lose_one_match_players]
- LC 题目链接
-