Parity II Leetcode Solution အားဖြင့် Array Sort


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် အမေဇုံ
အခင်းအကျင်း sorting

ပြstatementနာကြေညာချက်

ပြtheနာမှာ” Sort Array By parity II, "ကျနော်တို့ကအားလုံးကို element တွေကိုအပြုသဘောကိန်းနေသော parity ခင်းကျင်းပေးထားသည်။ ဒီ array ထဲမှာ element တွေအများကြီးပါရှိတယ်။ Array တွင်ညီမျှသောအရေအတွက်နှင့်မကိန်းများပါ ၀ င်သည်။

ကျွန်ုပ်တို့၏တာ ၀ န်မှာကျပန်း parity [i] တွင်ပါ ၀ င်ခြင်းမရှိသောအခါ parity [i] တွင်ပင် element ပါရှိခြင်းအားဖြင့် array ၏ element များကိုပြန်လည်စီစဉ်ရန်ဖြစ်သည်။ ၄ င်းသည် parity [i] တွင်မကိန်းပါ ၀ င်ပြီး array အသစ်ကိုပြန်ပို့သင့်သည်။

နမူနာ

parity=[1,2,3,4]
[2,1,4,3]

ရှင်းလင်းချက်:  အခြေအနေကိုဖြည့်ဆည်းပေးနိုင်သည့်ဖြစ်နိုင်သမျှခင်းကျင်းမှုအားလုံးမှာ [2,1,4,3], [2,3,4,1], [4,1,2,3], [4,3,2,1] ။ ဤအခင်းကျင်း၏မည်သူမဆိုမှန်ကန်သောအဖြေကိုဖြစ်ပါတယ်။

Parity II Leetcode Solution အားဖြင့် Sort Array အတွက်ချဉ်းကပ်မှု

ဤပြproblemနာအတွက်ပထမနှင့်အခြေခံချဉ်းကပ်နည်းသည် array အသစ်တစ်ခုကိုဖန်တီးပြီးအဟောင်းခင်းကျင်းမှုကိုဖြတ်သန်းခြင်းဖြစ်သည်။ element တစ်ခုကိုတွေ့တဲ့အခါမှာ array အသစ်ကို even position နဲ့ထည့်လိုက်ပြီးထူးဆန်းတဲ့ element တစ်ခုကိုတွေ့တဲ့အခါ array အသစ်ရဲ့ထူးဆန်းတဲ့အနေအထားထဲကိုထည့်လိုက်ပါတယ်။ ဤနည်းသည်အပိုနေရာများကိုအသုံးပြုသည်။ ကျွန်ုပ်တို့၏ယုတ္တိဗေဒကိုနေရာပြန်လည်စီစဉ်ခြင်းဖြင့်တိုးတက်စေသည်။

Parity II Leetcode Solution အားဖြင့် Array Sort

စိတ်ကူးက element အားလုံးကို element ကို even အနေအထားနဲ့ထားလိုက်မယ်ဆိုရင်ထူးဆန်းတဲ့ element တွေဟာထူးဆန်းတဲ့အနေအထားမှာအလိုအလျောက်ဖြစ်လိမ့်မယ်။ ဒါကြောင့် element တွေကိုတောင် position ကိုဘယ်လိုထားရမယ်ဆိုတာကိုပဲအာရုံစိုက်ဖို့လိုတယ်။ ဒီအဆင့်တွေကိုလိုက်နာမယ်။

  1. Variable i ကို 0 နှင့် j ဖြင့် 1 နှင့်စတင်ပါ။ ဤတွင်ကျွန်ုပ်သည်အနေအထားကိုပင်ခရီးသွားမည်ဖြစ်သောကြောင့်၎င်း၏တန်ဖိုးကို ၂ ကြိမ်တိုးသွားမည်။ j သည်ထူးဆန်းသောအနေအထားကိုသာသွားလိမ့်မည်။
  2. အကယ်၍ parity [i] သည်မကိန်းဆိုလျှင်ကျွန်ုပ်တို့သည် parity [j] နှင့်ညီမျှသော aj ကိုတွေ့လိမ့်မည်။ ထို့နောက် i နှင့် j တွင် element များကိုလဲလှယ်လိမ့်မည်။
  3. i ၏တန်ဖိုးသည် parity ခင်းကျင်း၏အရှည်ထက်ငယ်သည်အထိကျွန်ုပ်တို့ဤအဆင့်များကိုလုပ်ဆောင်ပါမည်။
  4. အဆိုပါကွာခြားမှုနှုန်းခင်းကျင်းပြန်သွားပါ။

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

Sort Array အတွက် C ++ code ပါ ၀ င်သည်

#include <bits/stdc++.h> 
using namespace std; 
    vector<int> sortArrayByParityII(vector<int>& A) {
        int n =A.size();
        int j=1;
         for (int i = 0; i < n; i += 2)
            if (A[i] % 2 == 1) {
                while (A[j] % 2 == 1)
                    j += 2;
                swap(A[i],A[j]); 
            }

        return A;
    }
int main() 
{ 
 vector<int> arr = {1,2,3,4}; 
  vector<int>ans=sortArrayByParityII(arr); 
 for(int i=0;i<arr.size();i++)
 cout<<ans[i]<<" ";
 cout<<endl;
 return 0;
}
[2,1,4,3]

Sort Array အတွက် Java code အတွက်ပါ ၀ င်သည်

import java.util.Arrays; 
public class Tutorialcup {
    public static int[] sortArrayByParityII(int[] A) {
        int n =A.length;
        int j=1;
         for (int i = 0; i < n; i += 2)
            if (A[i] % 2 == 1) {
                while (A[j] % 2 == 1)
                    j += 2;
               swap(A, i, j);
                }

        return A;
    }
     private static void swap(int[] A, int i, int j) {
        int temp = A[i];
        A[i] = A[j];
        A[j] = temp;
    }
  public static void main(String[] args) {
        int [] arr = {1,2,3,4}; 
        int[]ans=sortArrayByParityII(arr); 
        System.out.println(Arrays.toString(ans));
  }
}
[2,1,4,3]

Parity II ကို Leetcode ဖြေရှင်းချက်အားဖြင့် Sort Array ၏ရှုပ်ထွေးအားသုံးသပ်ခြင်း

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

အထက်ပါကုဒ်၏အချိန်ရှုပ်ထွေးသည် အို (ဎ) ဘာဖြစ်လို့လဲဆိုတော့ကျနော်တို့ parity ခင်းကျင်းခြင်းတစ်ချိန်ကသာဖြတ်သန်းနေကြသည်။ ဒီမှာ n ဟာ parity array ရဲ့အရှည်ဖြစ်တယ်။

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

အပေါ်ကကုဒ်ရဲ့ရှုပ်ထွေးမှုက အို (၁) ဘာလို့လဲဆိုတော့ငါတို့ကအဖြေကိုသိမ်းဖို့ variable တစ်ခုပဲသုံးတယ်။

ကိုးကား