题目描述
给你一个整数数组 salary
,数组里每个数都是 唯一 的,其中 salary[i]
是第 i
个员工的工资。
请你返回去掉最低工资和最高工资以后,剩下员工工资的平均值。
解题思路
Step1:对数组salary进行排序。
Step2:对数组进行求和,减去最大值和最小值(排序后数组的首尾项),求平均值(保留小数点后五位数)。
Step3:返回平均值。
代码实现
本人代码
class Solution:
def average(self, salary: List[int]) -> float:
salary.sort()
avg= (sum(salary)-salary[0]-salary[-1])/(len(salary)-2)
return round(avg, 5)
官方代码
class Solution:
def average(self, salary: List[int]) -> float:
maxValue = max(salary)
minValue = min(salary)
total = sum(salary) - maxValue - minValue
return total / (len(salary) - 2)
做题心得
1. 直接最值索引的效率高于排序后索引的效率。
2. Python中数字格式化的类型区分:(1)round函数返回数字类型;(2)format函数返回字符串类型。