📅  最后修改于: 2023-12-03 15:40:17.621000             🧑  作者: Mango
有一大堆袜子必须按颜色配对。给定一个表示每只袜子颜色的整数数组,确定有多少双颜色匹配的袜子。
本题可以使用哈希表来解决。
具体来说,遍历整个数组,将每个元素的出现次数记录在哈希表中。遍历完成后,再次遍历哈希表,计算每个颜色出现的次数,并将其除以2,即可得到该颜色下可以匹配几双袜子。最后将所有颜色可以匹配的袜子数加起来即可得到最终结果。
下面是实现代码(使用Python语言):
def sockMerchant(n, ar):
# 记录每个颜色出现的次数
color_counts = {}
for i in ar:
if i in color_counts:
color_counts[i] += 1
else:
color_counts[i] = 1
# 统计每个颜色可以匹配的袜子数
num_pairs = 0
for color in color_counts.keys():
num_pairs += color_counts[color] // 2
return num_pairs
本题主要考察了哈希表的使用方法。在实现代码时需要注意,遍历哈希表时应该使用 keys()
方法获取所有键值,而不能使用 items()
方法,因为本题只需要统计每个颜色可以匹配几双袜子,而不需要知道每种颜色对应的袜子的具体编号。