કેટલાક તત્વો લીટકોડ સોલ્યુશનને દૂર કર્યા પછી એરેનો મીન


મુશ્કેલી સ્તર સરળ
વારંવાર પૂછવામાં આવે છે Google
અરે

સમસ્યા નિવેદન

"કેટલાક તત્વોને દૂર કર્યા પછી એરેનો સરેરાશ" સમસ્યામાં અમને એરે આપવામાં આવે છે. એરેના બધા તત્વો સકારાત્મક પૂર્ણાંકો છે. એરેનું કદ 20 નું બહુવિધ છે.

અમારું કાર્ય એરેનો સરેરાશ શોધવાનું છે બાકાત સૌથી નાના 5% તત્વો અને સૌથી વધુ 5% તત્વો.

ઉદાહરણ

arr = [6,2,7,5,1,2,0,3,10,2,5,0,5,5,0,8,7,6,8,0]
4.000000

સમજૂતી:

કેટલાક તત્વો લીટકોડ સોલ્યુશનને દૂર કર્યા પછી એરેનો મીન

છબી સingર્ટ કર્યા પછી આપેલ એરે બતાવે છે. સૌથી વધુ અને નીચલા 5% તત્વોને દૂર કર્યા પછી, બાકીના તત્વનો સરવાળો 172 છે, અને બાકીના તત્વોની કુલ સંખ્યા 36 છે. તેથી સરેરાશ 4.77778 થાય છે.

કેટલાક તત્વો લીટકોડ સોલ્યુશનને દૂર કર્યા પછી મીન ઓફ એરે માટેનો અભિગમ

આ એક સરળ અમલીકરણની સમસ્યા છે. નીચે આ સમસ્યાનું નિરાકરણ લાવવાનાં પગલાં છે:

  1. આપેલ એરે સortર્ટ કરો કારણ કે આપણે એરેમાંથી સૌથી વધુ અને સૌથી નીચા 5% તત્વોને ટ્રિમ કરવાની જરૂર છે.
  2. એરેની લંબાઈને વેરિયેબલમાં સ્ટોર કરો.
  3. બે ચલો જાહેર કરો:
    1. તત્વોનો સરવાળો સંગ્રહવા.
    2. વચ્ચે તત્વોની સંખ્યા સંગ્રહિત કરવા.
  4. હવે લૂપ ચલાવો અને સુવ્યવસ્થિત તત્વોનો સરવાળો શોધો.
    1. આ માટે, આપણે n * 0.05 થી લૂપ શરૂ કરીશું જ્યાં n આપેલ એરેની લંબાઈ છે અને લૂપ n * 0.95 સુધી ચાલશે.
  5. સરેરાશ ગણતરી.
    1.  અહીં નોંધવા માટે એક મહત્વપૂર્ણ મુદ્દો એ છે કે તે પૂર્ણાંક મૂલ્ય નહીં, પણ ડબલ મૂલ્ય આપવું જોઈએ.

અમલીકરણ

કેટલાક તત્વોને દૂર કર્યા પછી મીન ઓફ એરે માટે સી ++ કોડ

#include <bits/stdc++.h> 
using namespace std; 
    double trimMean(vector<int>& arr) {
        sort(arr.begin(),arr.end());
        int n=arr.size();
        double sum=0,cnt=0;
        for(int i=(n*.05);i<n*.95;i++)
        { 
            sum+=arr[i];
            cnt++;
        }
        return sum/cnt;      
    }
int main() 
{ 
 vector<int> arr = {6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4}; 
 double ans=trimMean(arr);
 cout<<ans<<endl;
 return 0;
}
4.77778

કેટલાક તત્વોને દૂર કર્યા પછી મીન ઓફ એરે માટે જાવા કોડ

import java.util.Arrays; 
public class Tutorialcup {
    public static double trimMean(int[] arr) {
     Arrays.sort(arr);
     int n = arr.length;   
     double sum = 0d,cnt=0; 
     for(int i=n / 20;i<n - n / 20;i++)
        { 
            sum+=arr[i];
            cnt++;
        }
        return sum/cnt; 
    }
  public static void main(String[] args) {
        int [] arr = {6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4}; 
        double ans=trimMean(arr); 
        System.out.println(ans);
  }
}
4.77778

કેટલાક તત્વો લીટકોડ સોલ્યુશનને દૂર કર્યા પછી મીન ઓફ એરેનું જટિલતા વિશ્લેષણ

સમયની જટિલતા

ઉપરોક્ત કોડની સમય જટિલતા છે ઓ (નોલોગ) કારણ કે આપણે આપેલ એરેને સingર્ટ કરી રહ્યા છીએ. અહીં n આપેલ એરેની લંબાઈ છે.

જગ્યાની જટિલતા

ઉપરોક્ત કોડની અવકાશ જટિલતા છે ઓ (1) કારણ કે આપણે જવાબ સંગ્રહવા માટે માત્ર એક વેરીએબલ વાપરી રહ્યા છીએ.

સંદર્ભ