subarray တစ်ခုမှကိုယ်စားပြုသောနံပါတ်ကို binary array တွင်စစ်ဆေးပါ  


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Cisco သည် fab IBM က Microsoft က PayU Snapchat Snapdeal Teradata
အခင်းအကျင်း bits

ပြ “နာ“ binary ခင်းကျင်းခြင်းတွင် subarray ကိုယ်စားပြုသည့်နံပါတ်သည်ထူးဆန်းသည်၊ သို့မဟုတ်မရှိ” ကိုစစ်ဆေးခြင်းသည်သင်အား binary array နှင့် range ကိုပေးသည်ဟုဖော်ပြသည်။ ဒီ array ထဲမှာ 0 နဲ့ 1s ပုံစံတွေပါဝင်တယ်။ အဆိုပါပြstatementနာကြေညာချက် [လက်ဝဲ, လက်ယာ] အကွာအဝေးအတွင်း subarray အတွက်ကိုယ်စားပြုသောအရေအတွက်ကိုရှာဖွေရန်တောင်းသည်သို့မဟုတ်ပင်သို့မဟုတ်ထူးဆန်း။

နမူနာ  

arr[] = {1,1,1,0,1}
Left, right = 1, 4
Left, right = 0, 3
odd even

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

ဘယ်၊ ညာ = 1,4၊ ဒီတော့ဒီဂဏန်းက 1101 ဖြစ်မယ်။

လက်ဝဲ၊ ညာ = ၀.၃ သည်ကိန်းဂဏန်း ၁၁၁၀ ကိုကိုယ်စားပြုပြီး ၁၄ သည်ညီမျှသည်။

subarray တစ်ခုမှကိုယ်စားပြုသောနံပါတ်ကို binary array တွင်စစ်ဆေးပါတွယ်အပ်

 

algorithm  

  1. Array ၏ညာဘက်အညွှန်းကိန်းသည် 1 သို့မဟုတ် 0 ဟုတ်မဟုတ်စစ်ဆေးပါ။
  2. အကယ်၍ ၎င်းသည် ၁ ဖြစ်လျှင်၎င်းသည်မကိန်းပါ၊ ထူးဆန်းစွာ print ထုတ်ပါ။
  3. 0 ဖြစ်ရင်တောင်တောင်မှ print ထုတ်နိုင်ပါတယ်။

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

binary ခင်းကျင်းမှုကိုစစ်ဆေးရန် subarray တစ်ခုမှကိုယ်စားပြုသောနံပါတ်သည်မကိန်းဖြစ်စေ၊ ပင်ဖြစ်စေကျွန်ုပ်တို့ကို binary ပေးထားသည် အခင်းအကျင်း။ ဒီတော့ binary array ကနေဆိုလိုတာက array ထဲမှာရှိတဲ့နံပါတ်က 0s နဲ့ 1s ပဲဖြစ်တယ်။ ဘယ်ဘက်မှာစမှတ်နဲ့ညာဘက်ခြမ်းအကွာအဝေးပါဝင်တဲ့အကွာအဝေးကိုကျွန်ုပ်တို့ပေးထားတယ်။ ဒီအကွာအဝေးအကြား, ငါတို့ 0s နှင့် 1s ၏ subarray ရလိမ့်မယ်။ ဒီ 0s နှင့် 1s သည်ဒdecimalမကိန်းအဖြစ်အလွယ်တကူအဓိပ္ပာယ်ကောက်ယူနိုင်သောနံပါတ်တစ်ခုကိုဖွဲ့စည်းသည်။

လည်းကြည့်ရှုပါ
The String ဂရိတ် Leetcode ဖြေရှင်းချက်လုပ်ပါ

ကျွန်ုပ်တို့သည်ဤမေးမြန်းချက်များနှင့်အတူတူပြုလိမ့်မည်, ငါတို့တစ်အကွာအဝေးပေးထားသည်။ ကျွန်တော်တို့က binary number ကို 0 နဲ့ 1 အဖြစ်ကိုယ်စားပြုနိုင်တယ်။ ဘာလို့လဲဆိုတော့ကျွန်တော်တို့က binary number ကို 1 အဖြစ်နောက်ဆုံးမှာရှိလျှင်၊ ဒါကကိန်းဂဏန်းမဟုတ်ဘူး။ မည်သည့်နံပါတ်၏ပထမ bit ကိုမဆိုဒdecimalမကိန်းအဖြစ်ကိုယ်စားပြုလိမ့်မည်အကြောင်းရင်းမှာ 2 ဖြစ်သည်။ ဒီတော့တစ်ခုလုံးကိန်းဘယ်လောက်ပဲရှိပါစေ၊ ဒါပေမယ့် binary number ရဲ့နောက်ဆုံး bit က 1 ဖြစ်ခဲ့ရင်၊ ဒါကထူးဆန်းသွားမှာပါ။ နောက်ဆုံး binary number ရဲ့ 0 ကသုညဖြစ်လျှင်၊0 0 နဲ့သုညဖြစ်သွားတယ်။ ဒါကြောင့်ဘာမှပြောင်းလဲမှာမဟုတ်ဘူး။

ဒါကြောင့် binary array မှာရှိတဲ့ check ကိုဖြေရှင်းဖို့ subarray ကိုယ်စားပြုတဲ့နံပါတ်ဟာမကိန်းဖြစ်ဖြစ် (သို့) မေးမြန်းချက်တော်တော်များများအတွက်ဆိုရင်တော့ကျနော်တို့က binary number ရဲ့နောက်ဆုံး bit ကိုစစ်ဆေးကြလိမ့်မယ်။ ဒါပေမယ့် range ထဲမှာဖန်တီးထားတဲ့ sub-array ကိုစစ်ဆေးရမယ်။ , ဒါကြောင့်ကျွန်တော်တို့က 1 နှင့်ညီမျှလျှင် array [ညာဘက်] တန်ဖိုးကိုစစ်ဆေးပါလိမ့်မယ်, ထို့နောက်တပြင်လုံးကိုကိန်းဂဏန်းဖြစ်လိမ့်မည်မဟုတ်လျှင်အရေအတွက်ကပင်ဖြစ်လိမ့်မည်။

ကုဒ်  

subarray တစ်ခု၏ကိုယ်စားပြုသောနံပါတ်ကိုစစ်ဆေးရန် C ++ သည်ထူးဆန်းသည် (သို့) ပင်ဖြစ်သည်

#include<iostream>

using namespace std;

void IsEvenOrOdd (int arr[], int n, int left, int right)
{
    if (arr[right] == 1)
        cout << "odd" << endl;
    else
        cout << "even" << endl;
}
int main()
{
    int arr[] = {1,1,1,0,1};
    int n = sizeof(arr)/sizeof(arr[0]);
    IsEvenOrOdd (arr, n, 1, 4);
    IsEvenOrOdd (arr, n, 0, 3);
    return 0;
}
odd
even

subarray တစ်ခု၏နံပါတ်ကိုစစ်ဆေးရန် Java ကုဒ်သည်ထူးဆန်းသည် (သို့) ပင်ဖြစ်သည်

class BinaryOddEven
{
    static void IsEvenOrOdd (int arr[], int n, int left, int right)
    {
        if (arr[right] == 1)
            System.out.println( "odd") ;
        else
            System.out.println ( "even") ;
    }
    public static void main (String[] args)
    {
        int arr[] = {1,1,1,0,1};
        int n = arr.length;
        IsEvenOrOdd (arr, n, 1, 4);
        IsEvenOrOdd (arr, n, 0, 3);

    }
}
odd
even

ရှုပ်ထွေးဆန်းစစ်ခြင်း  

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

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

လည်းကြည့်ရှုပါ
အဆိုပါ Duplicate Element ကိုရှာပါ

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

အို (၁) အဘယ်သူမျှမပိုအာကာသလိုအပ်သည်အဖြစ်။ ထို့ကြောင့် binary array တွင် Check ၏ space ရှုပ်ထွေးမှုသည် subarray တစ်ခုမှကိုယ်စားပြုသောနံပါတ်သည်ထူးဆန်းသည်သို့မဟုတ်ပြproblemနာပင်စဉ်ဆက်မပြတ်ရှိနေသည်။