salary
,数组里每个数都是 唯一 的,其中 salary[i]
是第 i
个员工的工资。示例 1:
输入: salary = [4000,3000,1000,2000]
输出: 2500.00000
解释: 最低工资和最高工资分别是 1000 和 4000 。去掉最低工资和最高工资以后的平均工资是 (2000+3000)/2= 2500
示例 2:
输入: salary = [1000,2000,3000]
输出: 2000.00000
解释: 最低工资和最高工资分别是 1000 和 3000 。去掉最低工资和最高工资以后的平均工资是 (2000)/1= 2000
示例 3:
输入: salary = [6000,5000,4000,3000,2000,1000]
输出: 3500.00000
示例 4:
输入: salary = [8000,9000,2000,3000,6000,1000]
输出: 4750.00000
3 <= salary.length <= 100
10^3 <= salary[i] <= 10^6
salary[i]
是唯一的。10^-5
以内的结果都将视为正确答案。function average(salary: number[]): number { let sortSalary = salary.sort((a, b) => { return a - b; }); let sum = 0; for(let i = 1; i < sortSalary.length - 1; i++){ sum += sortSalary[i]; } return sum / (sortSalary.length - 2); };
2
)function average(salary: number[]): number { let max = Math.max(...salary); let min = Math.min(...salary); salary.splice(salary.indexOf(max), 1); salary.splice(salary.indexOf(min), 1); let sum = salary.reduce((next, pre) => { return next + pre }, 0) return sum / salary.length };
优化版:
Math.max
和Math.min
将数组的最大值和最小值找到splice
将最大值和最小值从原数组中删除(splice方法改变原数组的长度
)reduce
方法将数组求和