최소 및 최대 급여 Leetcode 솔루션을 제외한 평균 급여

난이도 쉽게
자주 묻는 질문 넷스위트
알고리즘 코딩 인터뷰 인터뷰 준비 리트코드 LeetCodeSolutions조회수 39

문제 설명

문제에서” 평균 최소 및 최대 급여를 제외한 급여”급여 배열이 제공됩니다. 여기서 배열의 각 요소는 서로 다른 직원의 급여를 나타냅니다. 배열의 각 값은 고유합니다.

우리의 임무는 최소 및 최대 급여를 제외한 직원의 평균 급여를 계산하는 것입니다.

Salary= [8000,9000,2000,3000,6000,1000]
4750.0

설명 :

최소 및 최대 급여 Leetcode 솔루션을 제외한 평균 급여

주어진 급여 배열에서 9000은 최대 급여이고 1000은 최소 급여입니다. 우리는 제외하고 평균 급여를 찾아야하므로 최소 및 최대 이 값을 총 합계에 더하지 않습니다. 총합은 19000이므로 평균은 19000/4, 즉 4750입니다.

접근

이것은 기본적인 수학 문제입니다. 우리의 임무는 최소 및 최대 급여를 찾은 다음 나머지 급여의 평균을 찾는 것입니다. 다음 단계를 따릅니다.

  1. 최소 급여는 INT_MAX로, 최대 급여는 INT_MIN으로 초기화하십시오. 변수를 사용하여 급여 합계를 저장하므로 0으로 초기화합니다.
  2. 배열을 탐색하고 각 급여를 합계에 추가합니다. 한편, 최소 급여 및 최대 급여 값도 업데이트하십시오.
  3. n의 값이 2보다 작 으면 평균 급여는 XNUMX이되고 평균 급여는 (총 급여-최소 급여-최대 급여) / (n-XNUMX)가됩니다.
  4. 평균 급여가 두 배가 될 수 있으므로 (n-2)에 1.0을 곱합니다.

최소 및 최대 급여 Leetcode 솔루션을 제외한 평균 급여 코드

C ++ 코드

#include <bits/stdc++.h> 
using namespace std; 
       double average(vector<int>& salary) {
        int n=salary.size();
        int mn=INT_MAX,mx=INT_MIN,sum=0;
        for(int i=0;i<n;i++)
        {
            sum=sum+salary[i];
            mn=min(mn,salary[i]);
            mx=max(mx,salary[i]);
        }
        double ans=(sum-mn-mx)/((n-2)*1.0);
        if(n>2)
            return ans;
        else 
            return 0;
    }
int main() 
{ 
 vector<int> arr = {8000,9000,2000,3000,6000,1000}; 
 cout<<average(arr)<<endl; 
 return 0;
}
4750.0

자바 코드

import java.util.Arrays; 
public class Tutorialcup {
        public static double average(int[] salary) {
        int n=salary.length;
        int mn=Integer.MAX_VALUE,mx=Integer.MIN_VALUE,sum=0;
        for(int i=0;i<n;i++)
        {
            sum=sum+salary[i];
            mn=Math.min(mn,salary[i]);
            mx=Math.max(mx,salary[i]);
        }
        double ans=(sum-mn-mx)/((n-2)*1.0);
        if(n>2)
            return ans;
        else 
            return 0;
    }
  public static void main(String[] args) {
    int [] arr = {8000,9000,2000,3000,6000,1000}; 
    double ans=  average(arr);
    System.out.println(ans);
  }
}
4750.0

최소 및 최대 급여 Leetcode 솔루션을 제외한 평균 급여의 복잡성 분석

시간 복잡성

위 코드의 시간 복잡성은 O (N) 급여 배열을 한 번만 탐색하기 때문입니다. 여기서 n은 급여 배열의 길이입니다.

공간 복잡성

위 코드의 공간 복잡성은 다음과 같습니다. O (1) 답을 저장하는 데 변수 만 사용하고 있기 때문입니다.

참조

코멘트를 남겨

Translate »