2023-05-01 Daily Challenge

Today I have done leetcode's May LeetCoding Challenge with cpp.

May LeetCoding Challenge 1

Description

Average Salary Excluding the Minimum and Maximum Salary

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.

Solution

auto speedup = [](){
  cin.tie(nullptr);
  cout.tie(nullptr);
  ios::sync_with_stdio(false);
  return 0;
}();
class Solution {
public:
  double average(vector<int>& salary) {
    int sum = accumulate(salary.begin(), salary.end(), 0);
    int mmin = *min_element(salary.begin(), salary.end());
    int mmax = *max_element(salary.begin(), salary.end());

    return (sum - mmin - mmax) * 1.0 / (salary.size() - 2);
  }
};

// Accepted
// 43/43 cases passed (5 ms)
// Your runtime beats 23.02 % of cpp submissions
// Your memory usage beats 84.06 % of cpp submissions (7.1 MB)