Array ၏ Element များအားလုံးတူညီစေရန်အနည်းဆုံး Delete Operations လုပ်ပါ


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Adobe က အချက်အလက်
အခင်းအကျင်း hash

ကျွန်တော်တစ် ဦး input ကိုရှိသည်ဆိုပါစို့ အခင်းအကျင်း နှင့် "X" ဒြပ်စင်အရေအတွက်။ ကျွန်ုပ်တို့သည် Deletions စစ်ခြင်းများကိုရှာဖွေရန်လိုအပ်သောပြgivenနာတစ်ခုပေးပြီးဖြစ်သည်။ ၎င်းသည်အနိမ့်ဆုံးတန်းတူညီမျှခင်းကျင်းရန်လိုအပ်သည်။

နမူနာ

input:

[၂၊ ၃၊ ၄၊ ၁၊ ၇၊ ၉]

output:

3

ရှင်းလင်းချက်:

(4, 6, 2) element များကိုဖယ်ရှားပြီးနောက် array သည်တူညီသည်။ ဆိုလိုသည်မှာ [3, 1, 1]

input:

[၂၊ ၃၊ ၄၊ ၁၊ ၇၊ ၉]

output:

5

ရှင်းလင်းချက်:

element တစ်ခုစီကိုညီမျှအောင်လုပ်ဖို့ element ၅ ခုထဲကတစ်ခုခုကိုဖယ်ထုတ်လို့ရတယ်။

algorithm

  1. array ထဲမှ element များ၏ကြိမ်နှုန်းကိုမြေပုံတွင်သိမ်းထားပါ။
  2. အစုံ “ max_freq” သို့ INT_MIN.
  3. မြေပုံကို ဖြတ်၍ မည်သည့်ဒြပ်စင်သည်အများဆုံးကြိမ်နှုန်းရှိသည်ကိုစစ်ဆေးပါ
    • အစုံ “ max_freq” သို့ max (max_freq, တန်ဖိုး) အားလုံးကြိမ်နှုန်းအကြားအများဆုံးတန်ဖိုးကိုရှာဖွေရန်။
  4. ခင်းကျင်းအရွယ်အစားအကြားခြားနားချက်ကိုပြန်သွားပါ “ n” နှင့် max_freq (n - max_freq).

ရှင်းလင်းချက်

ကျွန်ုပ်တို့သည်ပြminimumနာတစ်ခုပေးပြီးအနည်းဆုံးမည်မျှရှိသည်ကိုရှာဖွေရမည် ဖျက်သည် စစ်ဆင်ရေး (အလားတူဒြပ်စင်၏) တစ်ခုခင်းကျင်းတန်းတူစေရန်လိုအပ်သည်။ ဒီအတွက်မြေပုံကိုသိုလှောင်သိမ်းဆည်းမယ် ကြိမ်နှုန်း အဆိုပါခင်းကျင်းထဲမှာပစ္စုပ္ပန်သောအသီးအသီးအရေအတွက်၏။

ဤသို့ပြုခြင်းဖြင့်ကျွန်ုပ်တို့သည်ကြိမ်နှုန်းအားလုံးတို့တွင်အကြီးဆုံးသောကြိမ်နှုန်းကိုရရှိလိမ့်မည်။ မြေပုံကိုကျော်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် max method ကိုအသုံးပြုခြင်းအားဖြင့်အများဆုံးကြိမ်နှုန်းကိုရနိုင်သည်။ အဆိုပါကြားမှာပြီးနောက် မြေပုံ ကျွန်ုပ်တို့အမြင့်ဆုံးကြိမ်နှုန်းရှိလိမ့်မည်၊ ကျွန်ုပ်တို့သည် array_size ကိုပြန်ရမည်ဖြစ်သည်။ အများဆုံးကြိမ်နှုန်း၊ ဆိုလိုသည်မှာကျွန်ုပ်တို့သည်အနိမ့်ဆုံးကြိမ်နှုန်းစုစုပေါင်းကိုပြန်ပို့ခြင်းဖြစ်သည်။

ဥပမာတစ်ခုကိုသုံးသပ်ကြည့်ကြစို့။

ဆိုက်ရောက်: {10, 3, 4, 4, 2, 4};

  • i = 0၊ arr [i] ကို 10 အဖြစ်ယူပြီး freq (10, 1) ကိုသိမ်းသည်။
  • i = 1၊ arr [i] ကို 3 အဖြစ်ယူပြီး freq (3, 1) ကိုသိမ်းသည်။
  • i = 2 အတွက် arr [i] ကို 4 အဖြစ်ယူပြီး freq (4, 1) သိုလှောင်သည်။
  • i = 3, arr [i] ကို 4 အဖြစ်သတ်မှတ်သည်။ မြေပုံတွင်နေရာ ၄ ရှိပြီးသား ဖြစ်၍ ၄ ခု၏သော့ချက်နေရာတွင်ထပ်မံတွက်ချက်ပြီး freq (4, 4) ကိုသိမ်းထားသည်။
  • i = 4 က arr [i] ကို 2 အဖြစ်ယူပြီး freq (2, 1) သိုလှောင်သည်။
  • i = 5 အတွက် ၄ င်းကို arr [i] အဖြစ်သတ်မှတ်သည်။ အဘယ်ကြောင့်ဆိုသော် ၄ ခုသည်မြေပုံတွင်ရှိပြီးသား ဖြစ်၍ ၄ ခု၏သော့ချက်နေရာတွင်ထပ်မံတွက်ချက်ပြီး freq (4, 4) ကိုသိမ်းထားသည်။

ဤနံပါတ်များအားလုံးထဲမှ '4' တွင်အများဆုံးကြိမ်နှုန်းသည် ၃ ဖြစ်ပြီးမြေပုံပေါ်မှ ၃ ကြိမ်အဖြစ်အများဆုံးဖြတ်သန်းသွားသောအခါကျွန်ုပ်တို့သည်တန်ဖိုးကိုပြန်သွားပါမည်။ (n - max_freq) ၃ ။

အကောင်အထည်ဖော်ရေး

Minimum Delete Operations အတွက် C ++ ပရိုဂရမ်ကို Array of Elements များအားတူညီစေရန်

#include <bits/stdc++.h>
using namespace std;

int minDelete(int arr[], int n)
{
    unordered_map<int, int> freq;
    for (int i = 0; i < n; i++)
        freq[arr[i]]++;

    int max_freq = INT_MIN;

    for (auto itr = freq.begin(); itr != freq.end(); itr++)
        max_freq = max(max_freq, itr->second);

    return n - max_freq;
}
int main()
{
    int arr[] = { 10, 3, 4, 4, 2, 4 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << minDelete(arr, n);
    return 0;
}
3

Minimum Delete Operations အတွက် Java ပရိုဂရမ်များကို Array of Elements များအားတူညီစေရန်ပြုလုပ်သည်

import java.util.HashMap;
class minimumDeletionOperation
{
    public static int noOfMinimumDeletions(int arr[], int n)
    {
        HashMap<Integer,Integer> freq=new HashMap<Integer,Integer>();
        for(int i=0; i<arr.length; i++)
        {
            if(freq.containsKey(arr[i]))
                freq.put(arr[i], freq.get(arr[i]) + 1);
            else
                freq.put(arr[i], 1);
        }

        int max_freq=Integer.MIN_VALUE;

        for (int i:freq.keySet())
            max_freq = Math.max(max_freq, freq.get(i));

        return n - max_freq;
    }
    public static void main(String args[])
    {
        int arr[] = { 10, 3, 4, 4, 2, 4 };
        int n = arr.length;
        System.out.println(noOfMinimumDeletions(arr, n));
    }
}
3

အနည်းဆုံး Delete Operations အတွက်ရှုပ်ထွေးမှုအားခွဲခြမ်းစိတ်ဖြာခြင်းသည် Array ၏ Element များအားလုံးတူညီစေရန်ပြုလုပ်ရန်

အချိန်ရှုပ်ထွေး

အို ()) ဘယ်မှာ “ n” သည် array အတွင်းရှိ element အရေအတွက်ဖြစ်သည်

အာကာသရှုပ်ထွေးမှု

အို ()) ဘယ်မှာ “ n” သည် array အတွင်းရှိ element အရေအတွက်ဖြစ်သည်