返回介绍

solution / 1400-1499 / 1491.Average Salary Excluding the Minimum and Maximum Salary / README_EN

发布于 2024-06-17 01:03:19 字数 4504 浏览 0 评论 0 收藏 0

1491. Average Salary Excluding the Minimum and Maximum Salary

中文文档

Description

You are given an array of unique integers salary where salary[i] is the salary of the ith employee.

Return _the average salary of employees excluding the minimum and maximum salary_. Answers within 10-5 of the actual answer will be accepted.

 

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

 

Constraints:

  • 3 <= salary.length <= 100
  • 1000 <= salary[i] <= 106
  • All the integers of salary are unique.

Solutions

Solution 1

class Solution:
  def average(self, salary: List[int]) -> float:
    s = sum(salary) - min(salary) - max(salary)
    return s / (len(salary) - 2)
class Solution {
  public double average(int[] salary) {
    int s = 0;
    int mi = 10000000, mx = 0;
    for (int v : salary) {
      mi = Math.min(mi, v);
      mx = Math.max(mx, v);
      s += v;
    }
    s -= (mi + mx);
    return s * 1.0 / (salary.length - 2);
  }
}
class Solution {
public:
  double average(vector<int>& salary) {
    int s = 0;
    int mi = 1e7, mx = 0;
    for (int v : salary) {
      s += v;
      mi = min(mi, v);
      mx = max(mx, v);
    }
    s -= (mi + mx);
    return (double) s / (salary.size() - 2);
  }
};
func average(salary []int) float64 {
  s := 0
  mi, mx := 10000000, 0
  for _, v := range salary {
    s += v
    mi = min(mi, v)
    mx = max(mx, v)
  }
  s -= (mi + mx)
  return float64(s) / float64(len(salary)-2)
}
function average(salary: number[]): number {
  let max = -Infinity;
  let min = Infinity;
  let sum = 0;
  for (const v of salary) {
    sum += v;
    max = Math.max(max, v);
    min = Math.min(min, v);
  }
  return (sum - max - min) / (salary.length - 2);
}
impl Solution {
  pub fn average(salary: Vec<i32>) -> f64 {
    let n = salary.len() as i32;
    let mut min = i32::MAX;
    let mut max = i32::MIN;
    let mut sum = 0;
    for &num in salary.iter() {
      min = min.min(num);
      max = max.max(num);
      sum += num;
    }
    f64::from(sum - min - max) / f64::from(n - 2)
  }
}
class Solution {
  /**
   * @param Integer[] $salary
   * @return Float
   */
  function average($salary) {
    $max = $sum = 0;
    $min = 10 ** 6;
    for ($i = 0; $i < count($salary); $i++) {
      $min = min($min, $salary[$i]);
      $max = max($max, $salary[$i]);
      $sum += $salary[$i];
    }
    return ($sum - $max - $min) / (count($salary) - 2);
  }
}
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))

double average(int* salary, int salarySize) {
  int ma = INT_MIN;
  int mi = INT_MAX;
  int sum = 0;
  for (int i = 0; i < salarySize; i++) {
    sum += salary[i];
    ma = max(ma, salary[i]);
    mi = min(mi, salary[i]);
  }
  return (sum - mi - ma) * 1.0 / (salarySize - 2);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文