第27题游戏英雄升级潜力评估 对于这题的思路是这样的: 初始化数据结构: 使用一个字典(或数组)来记录每个等级的英雄数量。 统计等级分布: 遍历英雄列表,对于每个英雄,将其等级作为键,数量加1。 判断潜力: 遍历字典,对于每个等级,如果该等级的英雄数量大于1,则这些英雄有潜力通过互相历练不断增加等级。 计算结果: 统计所有有潜力的英雄数量。 具体实现思路 初始化字典: 创建一个空字典 level_count 来记录每个等级的英雄数量。 遍历英雄列表: 对于每个英雄,更新 level_count 中对应等级的数量。 统计有潜力的英雄数量: 遍历 level_count,对于每个等级,如果英雄数量大于1,则将这些英雄数量累加到结果中。 def solution(n: int, u: list) -> int: # 初始化字典来记录每个等级的英雄数量 level_count = {} def solution(n: int, u: list) -> int: # 初始化字典来记录每个等级的英雄数量 level_count = {}
# 遍历英雄列表,统计每个等级的英雄数量
for level in u:
if level in level_count:
level_count[level] += 1
else:
level_count[level] = 1
# 统计有潜力的英雄数量
potential_count = 0
for count in level_count.values():
if count > 1:
potential_count += count
return potential_count
关键步骤解释 初始化字典: level_count = {} 创建一个空字典。 统计等级分布: for level in u: 遍历英雄列表。 if level in level_count: 检查字典中是否已有该等级。 level_count[level] += 1 或 level_count[level] = 1 更新字典中的数量。 判断潜力: for count in level_count.values(): 遍历字典中的值(即每个等级的英雄数量)。 if count > 1: 如果数量大于1,则这些英雄有潜力。 potential_count += count 累加有潜力的英雄数量。 这段代码主要使用了以下知识点:
字典(Dictionary):
使用字典 level_count 来记录每个等级的英雄数量。字典是一种键值对的数据结构,允许快速查找、插入和删除操作。 循环(Loops):
使用 for 循环遍历英雄列表 u,统计每个等级的英雄数量。 再次使用 for 循环遍历字典的值,计算有潜力的英雄数量。 条件判断(Conditional Statements):
使用 if 语句检查某个等级是否已经在字典中存在,如果存在则增加计数,否则初始化该等级的计数为1。 使用 if 语句检查某个等级的英雄数量是否大于1,如果是则将其计入有潜力的英雄数量。 基本数据类型和操作:
使用整数类型 int 进行计数操作。 使用加法运算符 += 来增加计数。 函数定义与返回值:
定义了一个名为 solution 的函数,接受两个参数 n 和 u,并返回一个整数结果。 使用 return 语句返回最终的有潜力英雄数量。 这些知识点共同构成了这段代码的核心逻辑,使其能够有效地统计出有潜力的英雄数量。