बाइनरी सरणी में जांचें कि एक सबर्रे द्वारा दर्शाया गया नंबर विषम या समरूप है


कठिनाई स्तर आसान
में अक्सर पूछा सिस्को फैब आईबीएम माइक्रोसॉफ्ट PayU Snapchat स्नैपडील Teradata
ऐरे बिट्स

समस्या "बाइनरी सरणी में जाँच करें कि एक सबर्रे द्वारा दर्शाई गई संख्या विषम है या यहां तक ​​कि" बताता है कि आपको एक बाइनरी सरणी और एक सीमा दी गई है। सरणी में 0s और 1s के रूप में संख्या शामिल है। समस्या कथन यह बताता है कि रेंज में एक सबर्रे में दर्शाए गए नंबर का पता लगाना [बाएँ, दाएँ] सम या विषम है।

उदाहरण

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

व्याख्या

बाएं, दाएं = 1,4, इसलिए संख्या 1101 होगी जो दशमलव में 13 होगी इसलिए यह विषम है।

बाएं, दाएं = 0,3 जो 1110 की संख्या का प्रतिनिधित्व करता है जो दशमलव में 14 होगा जो कि सम है।

बाइनरी सरणी में जांचें कि एक सबर्रे द्वारा दर्शाया गया नंबर विषम या समरूप है

 

कलन विधि

  1. जांचें कि क्या सरणी का सही इंडेक्स 1 या 0 है।
  2. यदि यह 1 है, तो यह विषम है, विषम प्रिंट करें।
  3. अगर यह 0 है, तो यह भी है, प्रिंट भी।

व्याख्या

बाइनरी सरणी में जाँच करने के लिए एक सबर्रे द्वारा दर्शाई गई संख्या विषम या सम है, हमें बाइनरी दी गई है सरणी। तो बाइनरी सरणी से हमारा कहने का मतलब है कि सरणी में संख्या केवल 0s और 1s के रूप में होगी। हमें एक सीमा दी गई है जिसमें बाईं ओर एक प्रारंभिक बिंदु और दाईं ओर एक समाप्ति सीमा है। इस रेंज के बीच में, हमें 0s और 1s का सबर्रे मिलेगा। ये 0s और 1s एक संख्या बनाने के लिए संयोजित होते हैं जिन्हें आसानी से दशमलव संख्या के रूप में व्याख्या किया जा सकता है।

इन प्रश्नों के साथ एक ही बात करेंगे, हमें एक सीमा दी गई है। चूंकि हम बाइनरी नंबर को 0 और 1. के रूप में दर्शा सकते हैं, अगर हमारे पास 1 के रूप में एक बाइनरी नंबर का अंतिम बिट है, तो इसका मतलब है कि संख्या विषम है। कारण यह है कि किसी भी संख्या का पहला बिट दशमलव संख्या के रूप में दर्शाया जाएगा0। तो पूरी संख्या जो भी होगी लेकिन यदि किसी भी बाइनरी संख्या का अंतिम बिट 1. यह विषम होने वाला है, और यदि द्विआधारी संख्या का अंतिम बिट 0 है, तो 2 का गुणन0 0 के साथ, 0 में परिणाम होता है, इसलिए इसमें कुछ भी नहीं बदलता है।

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

कोड

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

एक सबअरे द्वारा दर्शाई गई संख्या की जाँच करने के लिए जावा कोड विषम या सम है

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 (1) समय की जटिलता में दिया जा सकता है।

अंतरिक्ष जटिलता

ओ (1) के रूप में कोई अतिरिक्त स्थान की आवश्यकता है। इस प्रकार बाइनरी एरे में चेक की स्पेस जटिलता एक सबर्रे द्वारा दर्शाई गई संख्या विषम है या समस्या भी स्थिर है।