Minimum və Maksimum Maaş Leetcode Çözümü xaricində orta əmək haqqı

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Net Suite
alqoritmlər kodlaşdırma müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutionsBaxılıb 101

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Problem bəyanat

Problemdə ” orta Minimum və maksimum əmək haqqı xaric olan əmək haqqı ”mövzusunda bizə bir əmək haqqı seriyası verilir. massivdəki hər elementin fərqli işçilərin əmək haqqını təmsil etdiyi yer. Dizidəki hər bir dəyər unikaldır.

Bizim vəzifəmiz, minimum və maksimum əmək haqqı xaricində işçinin orta maaşını hesablamaqdır.

misal

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

Explanation:

Minimum və Maksimum Maaş Leetcode Çözümü xaricində orta əmək haqqıPin

Verilən maaş massivində 9000 maksimum əmək haqqı və 1000 minimum əmək haqqıdır. Bunun xaricində orta əmək haqqını tapmaq lazım olduğu üçün minimum və maksimum əmək haqqı, bu dəyərləri ümumi məbləğə əlavə etməyəcəyik. Ümumi məbləğ 19000, ortalama 19000 olan 4/4750 olduğu üçün XNUMX/XNUMX-dir.

Yanaşma

Bu əsas riyaziyyat problemidir. Bizim vəzifəmiz minimum və maksimum əmək haqqını tapmaq, sonra qalan əmək haqqının ortalamasını tapmaqdır. Bu addımları izləyəcəyik:

  1. Minimum əmək haqqını INT_MAX ilə, maksimum əmək haqqını INT_MIN ilə başlayın. Əmək haqqı məbləğini saxlamaq üçün bir dəyişən istifadə edəcəyik, buna görə 0 ilə başlayın.
  2. Dizini keçin və hər əmək haqqını cəminə əlavə edin. Bu vaxt minimum əmək haqqı və maksimum əmək haqqının dəyərini də yeniləyin.
  3. N-in dəyəri üçdən kiçikdirsə, orta əmək haqqı sıfıra bərabərdir, əks halda orta əmək haqqı (ümumi əmək haqqı-minimum əmək haqqı-maksimum əmək haqqı) / (n-2) olacaqdır.
  4. (N-2) 1.0 ilə çoxalacağıq, çünki orta əmək haqqı ikiqat dəyər ola bilər.

Minimum və Maksimum Maaş Leetcode Həlli istisna olmaqla Orta Əmək haqqı kodu

C ++ kodu

#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

Java kodu

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

Minimum və Maksimum Maaş Leetcode Çözümünü çıxmaqla Orta Əmək haqqının mürəkkəbliyi təhlili

Zaman mürəkkəbliyi

Yuxarıdakı kodun zaman mürəkkəbliyi O (n) çünki biz yalnız bir dəfə maaş seriyasından keçirik. Burada n əmək haqqı massivinin uzunluğu.

Kosmik mürəkkəblik

Yuxarıdakı kodun kosmik mürəkkəbliyi O (1) çünki cavabı saxlamaq üçün yalnız dəyişəndən istifadə edirik.

References

Crack Sistemi Dizayn Müsahibələri
Translate »