မတူညီသောနံပါတ်များကို Interval Range Leetcode Solution ဖြင့်ရေတွက်ပါ


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

ပြProbleနာဖော်ပြချက်

ဤပြproblemနာတွင်အနုတ်လက္ခဏာမဟုတ်သောကိန်းနှစ်ခုကိုအနိမ့်နှင့်အမြင့်ပေးသည်။ ပေးထားသောကြားကာလအကွာအဝေး [အနိမ့်၊ အမြင့်ဆုံး] တွင်မည်မျှထူးဆန်းသောနံပါတ်များရှိသည်ကိုကျွန်ုပ်တို့ရှာဖွေရမည်။

နမူနာ

low = 3, high = 7
3

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

၃ နဲ့ ၇ ကြားကိန်းဂဏန်းတွေက [၃၊ ၅၊ ၇] ဖြစ်တယ်။

low = 8, high = 10
1

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

ဂဏန်း ၈ မှ ၁၀ ကြားမကိန်းဖြစ်သည်။

ချဉ်းကပ်နည်း

ပေးထားသောကြားကာလအကွာအဝေးတွင်မကိန်းအရေအတွက်စုစုပေါင်းကိုရှာရန်နည်းတစ်နည်းမှာကြားကာလ၏ဘယ်ဘက်မှညာဘက်သို့သွားရန်ဖြစ်သည်။ ကွင်းဆက် တစ်ခုချင်းစီကိုမကိန်းအရေအတွက်ထူးဆန်းတန်ပြန်တိုးမြှင့်။ သို့သော်ဤသည်ကိန်းဂဏန်းများကိုမရေတွက်နိုင်ရန်အလွန်ခြေဆွံ့သောနည်းလမ်းဖြစ်သည်။ ၎င်းသည်အချိန်အတိုင်းအတာတစ်ခုအထိရှုပ်ထွေးမှုရှိစေပြီး၊ ကျွန်ုပ်တို့သည်လွယ်ကူသောပြproblemနာတစ်ခုအတွက်မလိုလားပါ။

ပေးထားသောကြားကာလအကွာအဝေးတွင်စုစုပေါင်းမကိန်းအရေအတွက်ကိုရှာဖွေရန်အလွန်လွယ်ကူသည်၊ ကျွန်ုပ်တို့သည်ကြားကာလအကွာအဝေးတွင်ပင်တဝက်နီးပါးနှင့်မကိန်းတဝက်နီးပါးရှိသည်။
သို့သော်ကျွန်ုပ်တို့သည်ကြားကာလနယ်နိမိတ်များကိုအလွန်ဂရုစိုက်ရမည်။ ဒါဆိုငါတို့လုပ်နိုင်တာကပထမဆုံး n ကိန်းဂဏန်းမှာမကိန်းအရေအတွက်ရေတွက်ခြင်းအတွက်ပုံသေနည်းကိုဖော်ထုတ်နိုင်တယ်။ ရေတွက်ပါစေ။ ထို့နောက်အနိမ့်နှင့်အမြင့်အကြားမကိန်းသည်ညီမျှရမည်။
ရေတွက် [အနိမ့်အမြင့်] = ရေတွက် [အမြင့်] - ရေတွက် [အနိမ့် -1] ။

မတူညီသောနံပါတ်များကို Interval Range Leetcode Solution ဖြင့်ရေတွက်ပါ

count အတွက်ဥပမာအချို့ကိုယူပါ။

ရေတွက် [1] = 1
ရေတွက် [2] = 1
ရေတွက် [3] = 2
ရေတွက် [4] = 2
ရေတွက် [5] = 3

ငါတို့ရေတွက်နိုင်သည် [n] = (n + 1) / 2
အနိမ့် / 1 - ထို့ကြောင့် [အနိမ့်အမြင့်] = (အမြင့် + 2) / 2 ရေတွက်

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

Interval Range Leetcode Solution ရှိမရေမတွက်နိုင်သောနံပါတ်များအတွက် C ++ Program (Naive Approach)

#include <iostream>
using namespace std;

int countOdds(int low, int high) 
{
    int count=0;
    for(int i=low;i<=high;i++)
        if(i%2==1) count++;
        
    return count;
}

int main()
{
    int low=3,high=7;  
    cout<< countOdds(low, high) <<endl;
}
3

Interval Range Leetcode Solution ရှိမရေမတွက်နိုင်သောနံပါတ်များအတွက် Java ပရိုဂရမ် (Naive Approach)

class CountOdd
{  
    public static int countOdds(int low, int high) 
    {
        int count=0;
        for(int i=low;i<=high;i++)
            if(i%2==1) count++;
        
        return count;
    }
    
    public static void main(String args[])
    {
        int low=3,high=7;
        System.out.println(countOdds(low, high));
    }
}
3

C ++ အစီအစဉ် (အကောင်းဆုံးချဉ်းကပ်မှု)

#include <iostream>
using namespace std;

int countOdds(int low, int high) 
{
   return (high + 1) / 2 - low / 2;       
}

int main()
{
    int low=3,high=7;  
    cout<< countOdds(low, high) <<endl;
}
3

ဂျာဗားပရိုဂရမ် (အကောင်းဆုံးချဉ်းကပ်နည်း)

class CountOdd
{  
    public static int countOdds(int low, int high) 
    {
        return (high + 1) / 2 - low / 2;   
    }
    
    public static void main(String args[])
    {
        int low=3,high=7;
        System.out.println(countOdds(low, high));
    }
}
3

မတူညီသောကိန်းဂဏန်းများကို Interval Range Leetcode Solution အတွက်ရှုပ်ထွေးမှုဆန်းစစ်ခြင်း

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

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

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

အို (၁) ans များကိုသိမ်းဆည်းရန်အသုံးပြုသော variable မှလွဲ၍ ဖြေရှင်းချက်နှစ်ခုလုံးတွင်အပိုနေရာမရှိပါ။