लेटकोड सोल्यूशनच्या सम संख्येसह क्रमांक शोधा


अडचण पातळी सोपे
वारंवार विचारले Quora
अरे

या समस्येमध्ये, आम्हाला एक दिले जाते अॅरे सकारात्मक पूर्णांकाचे. आम्हाला समान संख्येसह अंकांची संख्या शोधणे आवश्यक आहे.

उदाहरण

Array = {123 , 34 , 3434 , 121 , 100}
2

स्पष्टीकरण: केवळ 34 आणि 3434 हे पूर्णांक संख्या आहेत. तर आपण 2 प्रिंट करू.

Array = {1 , 111 , 11111 , 12345}
0

स्पष्टीकरण: दिलेल्या अ‍ॅरेमध्ये समान संख्येसह कोणताही पूर्णांक नाही.

दृष्टीकोन

या समस्येचे मूळ म्हणजे पूर्णांकातील अंकांची संख्या मोजणे. जर आपण ते करू शकलो तर अ‍ॅरेमधील प्रत्येक पूर्णांकांसाठीची प्रक्रिया पुन्हा करू आणि पूर्णांक संख्या किती सम संख्येसह मोजू शकतो. बायनरी सादरीकरणामध्ये, संख्या पूर्ण करण्यासाठी शून्य होईपर्यंत आम्ही दिलेला पूर्णांक बदलू शकतो (किंवा 2 ने विभाजित करू) थोडा त्यात. त्याचप्रमाणे अंक मोजण्यासाठी आपण पूर्णांक संख्येद्वारे विभाजित करू शकतो 10 तो होईपर्यंत 0. ही पद्धत कोणत्याही बेससाठी खरी आहे.

लेटकोड सोल्यूशनच्या सम संख्येसह क्रमांक शोधा

 

अल्गोरिदम

  1. आपण एक फंक्शन तयार करू नंबर () त्यास पास केलेल्या कोणत्याही अ‍ॅरेमध्ये समान संख्येसह पूर्णांकांची संख्या शोधण्यासाठी
  2. तसेच, आम्ही एक मदतनीस कार्य तयार करतो संख्याऑफडिग्ज () पूर्ण केलेल्या पूर्णांकातील अंकांची संख्या खालीलप्रमाणे आहे:
    1. आरंभ करा CNT = 0
    2. पूर्णांक असताना, एन 0 पेक्षा मोठे आहे:
      1. वाढ CNT, सीएनटी ++
      2. पाणलोट n by 10, एन / = 10
    3. परत CNT
  3. आरंभ करा परिणाम = 0 एक समान संख्येसह पूर्णांक संख्या मोजण्यासाठी
  4. अ‍ॅरेमधील प्रत्येक घटकासाठी:
    1. आम्ही त्या वापरून अंकांची संख्या पुनर्प्राप्त करतो संख्याऑफडिग्ज () कार्य
    2. प्राप्त केलेल्या अंकांची संख्या समान असल्यास:
      1. वाढ परिणाम, परिणाम ++
  5. परतीचा निकाल

लेटकोड सोल्यूशनच्या सम संख्येसह शोधण्याचे क्रमांक लागू करणे

सी ++ प्रोग्राम

#include <bits/stdc++.h>
using namespace std;

int numberOfDigits(int n)
{
    int cnt = 0;
    while(n > 0)
    {
        n /= 10;
        cnt++;
    }
    return cnt;
}

int findNumbers(vector <int> &a)
{
    int result = 0;
    for(int &i : a)
        if(numberOfDigits(i) % 2 == 0)
            result++;

    return result;
}

int main()
{
    vector <int> a = {123 , 34 , 3434 , 121 , 100};
    cout << findNumbers(a) << '\n';
    return 0;
}

जावा कार्यक्रम

class find_numbers
{
    public static void main(String args[])
    {
        int[] a = {123 , 34 , 3434 , 121 , 100};
        System.out.println(findNumbers(a));
    }

    static int numberOfDigits(int n)
    {
        int cnt = 0;
        while(n > 0)
        {
            n /= 10;
            cnt++;
        }
        return cnt;
    }

    static int findNumbers(int[] a)
    {
        int result = 0;
        for(int i = 0 ; i < a.length ; i++)
            if(numberOfDigits(a[i]) % 2 == 0)
                result++;

        return result;
    }
}
2

लिटकोड सोल्यूशनच्या सम संख्येसह क्रमांक शोधण्याचे जटिल विश्लेषण

वेळ कॉम्प्लेक्सिटी

वेळ गुंतागुंत आहे ओ (एन) जेथे अ‍ॅरेचा एन = आकार जसे आपण अ‍ॅरेचा एकच पास करतो आणि अंकांची संख्या स्थिर वेळेत परत मिळविली जाते.

स्पेस कॉम्प्लेक्सिटी

ओ (1) आपण केवळ मेमरी स्पेस वापरत आहोत.