Average Salary Excluding the Minimum and Maximum Salary - Array - Easy - LeetCode
💻 coding

Average Salary Excluding the Minimum and Maximum Salary - Array - Easy - LeetCode

1 min read 190 words
1 min read
ShareWhatsAppPost on X
  • 1The task is to calculate the average salary excluding the minimum and maximum values from a unique integer array of salaries.
  • 2Examples illustrate that the average is computed by summing the salaries excluding the min and max, then dividing by the adjusted count.
  • 3The solution has a time complexity of O(n) and a space complexity of O(1), ensuring efficiency even for larger arrays.

AI-generated summary · May not capture all nuances

Key Insight
AskGif

"The task is to calculate the average salary excluding the minimum and maximum values from a unique integer array of salaries."

Average Salary Excluding the Minimum and Maximum Salary - Array - Easy - LeetCode

Given an array of unique integers salary where salary[i] is the salary of the employee i.

Return the average salary of employees excluding the minimum and maximum salary.

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. The average salary excluding minimum and maximum salary is (2000)/1= 2000 Example 3:

Input: salary = [6000,5000,4000,3000,2000,1000] Output: 3500.00000 Example 4:

Input: salary = [8000,9000,2000,3000,6000,1000] Output: 4750.00000

Constraints:

3 <= salary.length <= 100 10^3 <= salary[i] <= 10^6 salary[i] is unique. Answers within 10^-5 of the actual value will be accepted as correct.

public class Solution {
 public double Average(int[] salary) {
 int sum = 0;
 int min = int.MaxValue;
 int max = int.MinValue;
 for(int i=0;i<salary.Length;i++){
 sum+=salary[i];
 if(salary[i]>max){
 max = salary[i];
 }
 if(salary[i]<min){
 min=salary[i];
 }
 }
 
 if(min != int.MaxValue){
 sum-=min;
 }
 
 if(max != int.MinValue){
 sum-=max;
 }
 
 if(salary.Length<=3){
 return sum;
 }
 
 double avg = (double)sum/(salary.Length-2);
 return avg;
 }
}

Time Complexity: O(n)

Space Complexity: O(1)

Enjoyed this article?

Share it with someone who'd find it useful.

ShareWhatsAppPost on X

sumitc91

Published on 26 September 2020 · 1 min read · 190 words

Part of AskGif Blog · coding

You might also like