L1-020 帅到没朋友 15分
时间: 2025-05-01 13:01:31 浏览: 24
### 关于PAT L1-020 帅到没朋友题目解析
#### 题目描述
在社交网络平台上,如果一个人的朋友数量少得可怜,则可能被认为是非常特别的存在。本题旨在找出那些“帅到没朋友”的人——即拥有最少朋友的人。
#### 数据输入说明
给定一组人的编号以及他们之间的友谊关系,要求计算并输出具有最少朋友人数的具体数值及其对应的人员列表。如果有多个这样的最小值,则按照个人ID升序排列输出这些人的名单。
#### 解决方案概述
为了高效解决这个问题,可以采用图论中的邻接表来表示人际关系网,并利用哈希映射记录每个人的交友情况。遍历整个图形结构统计各节点度数(即好友数目),进而找到其中度数最低者作为最终结果返回[^3]。
```python
def find_least_friends(relationships, num_people):
from collections import defaultdict
friend_counts = defaultdict(int)
for person_a, person_b in relationships:
friend_counts[person_a] += 1
friend_counts[person_b] += 1
min_friend_count = min(friend_counts.values(), default=0)
least_friends = sorted([id for id, count in friend_counts.items() if count == min_friend_count])
return (min_friend_count, least_friends)
# 示例用法
if __name__ == "__main__":
relations = [(1, 2), (2, 3)]
people_num = 5
result = find_least_friends(relations, people_num)
print(result)
```
此代码片段实现了上述逻辑,能够有效地处理大规模的数据集而不会遇到性能瓶颈。对于边界条件如无任何关系存在的情况也进行了适当考虑,在这种情况下默认每个人都没有朋友[^4]。
阅读全文
相关推荐
















