题目来源
我的题解
方法一 一次遍历
只需要一次遍历,遍历过程中记录总和sum以及最小值min和最大值max,最终结果=(sum-min-max)/(n-2)
时间复杂度:O(n)
空间复杂度:O(1)
public double average(int[] salary) {
int n=salary.length;
int sum=salary[0];
int min=salary[0];
int max=salary[0];
for(int i=1;i<n;i++){
sum+=salary[i];
min=Math.min(min,salary[i]);
max=Math.max(max,salary[i]);
}
return (sum-min-max)*1.0/(n-2);
}
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~