本文主要是介绍Leetcode-1491. 去掉最低工资和最高工资后的工资平均值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
给你一个整数数组
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
以内的结果都将视为正确答案。
重拳出击!
class Solution {public double average(int[] salary) {int size = salary.length;int max = 0;int min = Integer.MAX_VALUE;for(int i = 0 ;i < size;i++){if(salary[i]>max) max=salary[i];if(salary[i]<min) min = salary[i];}double sum = 0;double average = 0;for(int num : salary){sum+=num;}sum=sum-max-min;average = sum/(size-2);return average;}
}
排序法:
class Solution {public double average(int[] salary) {double sum =0;Arrays.sort(salary);for(int i =1; i<salary.length-1;i++){sum+=salary[i];}return (sum*1.0) / (salary.length-2);}
}
这篇关于Leetcode-1491. 去掉最低工资和最高工资后的工资平均值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!