[leetcode] 1491. Average Salary Excluding the Minimum and Maximum Salary
原创
©著作权归作者所有:来自51CTO博客作者是念的原创作品,请联系作者获取转载授权,否则将追究法律责任
Description
Given an array of unique integers salary where salary[i] is the salary of the employee i.
Return the average salary of employees excluding the minimum and maximum salary.
Example 1:
Input: salary = [4000,3000,1000,2000]
Output: 2500.00000
Explanation: Minimum salary and maximum salary are 1000 and 4000 respectively.
Average salary excluding minimum and maximum salary is (2000+3000)/2= 2500
Example 2:
Input: salary = [1000,2000,3000]
Output: 2000.00000
Explanation: Minimum salary and maximum salary are 1000 and 3000 respectively.
Average salary excluding minimum and maximum salary is (2000)/1= 2000
Example 3:
Input: salary = [6000,5000,4000,3000,2000,1000]
Output: 3500.00000
Example 4:
Input: salary = [8000,9000,2000,3000,6000,1000]
Output: 4750.00000
Note:
- The length of the given array is in range [2, 10,000], and will be even.
- The number in given array is in range [-100,000, 100,000].
分析
题目的意思是:给你一个数组,求出除去最大值和最小值的平均值,这道题目比较直接,用一个循环遍历,记录其中的最大值,最小值,求和,然后算出其平均值就行了。
代码
class Solution:
def average(self, salary: List[int]) -> float:
maxVal=0
minVal=float('inf')
res=0
n=len(salary)
for i in range(n):
maxVal=max(maxVal,salary[i])
minVal=min(minVal,salary[i])
res+=salary[i]
return (res-minVal-maxVal)/(n-2)