बाइनरी एर्रेमा चेक गर्नुहोस् सबभरिद्वारा प्रतिनिधित्व गरिएको नम्बर अनौंठो वा पनि हो


कठिनाई तह सजिलो
बारम्बार सोधिन्छ सिस्को फेब आईबीएम माइक्रोसफ्ट PayU Snapchat स्नैपडल टेराडाटा
एरे बिट्स

समस्या "बाइनरी एर्रेमा चेक आउट गर्नुहोस् सब सब्रेले प्रतिनिधित्व गर्ने संख्या अनौंठो छ वा यो पनि" भन्छ कि तपाईंलाई बाइनरी एर्रे र दायरा दिइन्छ। एर्रे 0s र 1s को रूप मा संख्या समावेश गर्दछ। समस्या कथनले दायरा [सब, बायाँ, दायाँ] को समान वा अनौंठोमा सबबारमा प्रतिनिधित्व गरिएको नम्बर पत्ता लगाउन सोधेको छ।

उदाहरणका

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

स्पष्टीकरण

बाँया, दाँया = १,,, त्यसैले संख्या ११०१ हुनेछ जुन दशमलव १ 1,4 हुनेछ त्यसैले यो अनौंठो छ।

बाँया, दाँया = ०,0,3 जसले १११० लाई प्रतिनिधित्व गर्दछ जुन दशमलवमा १ 1110 हुन्छ जुन सम हो।

बाइनरी एर्रेमा चेक गर्नुहोस् सबभरिद्वारा प्रतिनिधित्व गरिएको नम्बर अनौंठो वा पनि हो

 

अल्गोरिदम

  1. एर्रेको दाँया अनुक्रमणिका १ वा ० छ कि छैन जाँच गर्नुहोस्।
  2. यदि यो १ हो भने यो अनौंठो छ, प्रिन्ट अनौंठो छ।
  3. यदि यो ० छ भने, त्यसो भए पनि प्रिन्ट गर्नुहोस्।

स्पष्टीकरण

बाइनरी एर्रेमा जाँच्न सबबारैले प्रतिनिधित्व गर्ने नम्बर अनौंठो वा पनि हो, हामीलाई बाइनरी दिइन्छ array। त्यसैले बाइनरी एरेबाट, हामी भन्न खोजिरहेका छौं एरेमा नम्बर ० ० र १s को रूपमा हुनेछ। हामीलाई दायरा दिइन्छ जुन बायाँ पट्टि सुरू हुने बिन्दु र दायाँ पट्टि अन्त्य हुने दायरा हुन्छ। यस दायरा बीचमा, हामी ०s र १ सेकेन्डको सबर्रे पाउनेछौं। यी ० हरू र १ हरू एक संख्या बनाउँदछ जुन सजीलो दशमलव संख्याको रूपमा व्याख्या गर्न सकिन्छ।

हामीले यी क्वेरिहरूसँग जे गर्छौं त्यहि कुरा, हामीलाई दायरा दिइन्छ। किनकि हामी बाइनरी नम्बर ० र १ लाई प्रतिनिधित्व गर्न सक्छौं। यदि हामीसँग बाइनरी नम्बरको अन्तिम बिट १ छ भने यसको मतलब संख्या अनौंठो हुन्छ। कुनै संख्याको पहिलो बिट दशमलव संख्याको रूपमा प्रतिनिधित्व गरिने कारण २ को रूप मा छ0। त्यसो भए जे भए पनि पूरा संख्या हुनेछ तर यदि कुनै बाइनरी नम्बरको अन्तिम बिट १ हो भने यो अनौंठो हुनेछ, र यदि बाइनरी नम्बरको अन्तिम बिट ० छ भने २ को गुणा0 ० सँग, ० मा नतिजा, त्यसैले त्यहाँ यसमा केहि पनि परिवर्तन हुँदैन।

त्यसो भए बाइनरी एर्रेमा चेकलाई समाधान गर्न सब सब्रेले प्रतिनिधित्व गर्ने संख्या अनौंठो छ वा बहु प्रश्नहरूका लागि पनि, हामी बाइनरी नम्बरको अन्तिम बिट जाँच गर्नेछौं, तर हामीले दायरामा सिर्जना गरिएको सब-एरेमा जाँच गर्नुपर्नेछ। , त्यसैले हामी एरे [दायाँ] मान जाँच गर्दैछौं यदि यो १ बराबर छ, तब सम्पूर्ण संख्या अनौठो हुनेछ, अन्यथा संख्या बराबर हुनेछ।

कोड

C ++ एक subarray प्रतिनिधित्व संख्या जाँच गर्न अनौंठो वा पनि हो

#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 द्वारा प्रतिनिधित्व संख्या जाँच गर्न अनौंठो वा पनि हो

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

जटिलता विश्लेषण

समय जटिलता

O (q) जहाँ "क्यू" हामीले प्रदर्शन गर्ने प्रश्नहरूको संख्या हो। किनकि प्रत्येक क्वेरीलाई ओ (१) समय जटिलतामा जवाफ दिन सकिन्छ।

ठाउँ जटिलता

O (१) कुनै अतिरिक्त ठाउँको आवश्यक छ। यसैले बाइनरी एर्रेमा चेक इन अन्तरिक्ष जटिलता सबबार्रे द्वारा प्रतिनिधित्व गरिएको संख्या अनौंठो छ वा पनी समस्या स्थिर छ।