बॅचची रक्कम वापरून हे सहज सोडवता येते n (n + 1) / 2:և हा the सर्वात वेगवान և प्रभावी मार्गांपैकी एक आहे, परंतु अॅरेमध्ये एकापेक्षा अधिक गहाळ क्रमांक असल्यास किंवा वापरल्यास ते वापरले जाऊ शकत नाही अॅरेमध्ये डुप्लिकेट आहेत.

यामुळे मुलाखत घेणाऱ्याला काही छान फॉलो-अप प्रश्न मिळतात जेणेकरून उमेदवार थोड्या वेगळ्या परिस्थितीबद्दल त्याचे ज्ञान लागू करू शकेल का. म्हणून जर तुम्ही यावर मात केली, तर ते तुम्हाला डुप्लिकेटच्या अॅरेमध्ये हरवलेला नंबर शोधण्यास सांगतील. हे अवघड असू शकते, परंतु लवकरच तुम्हाला आढळेल की अॅरेमध्ये गहाळ, डुप्लीकेट क्रमांक शोधण्याचा दुसरा मार्ग म्हणजे तो क्रमवारी लावणे.

क्रमवारी लावलेल्या अॅरेमध्ये तुम्ही संख्या अपेक्षित पुढील संख्येइतकी आहे की नाही याची तुलना करू शकता. वैकल्पिकरित्या, आपण ते वापरू शकता! बिटसेट: ही समस्या सोडवण्यासाठी जावा मध्ये.

गहाळ क्रमांक शोधण्यासाठी जावा प्रोग्राम

चला समस्येचे विधान समजून घेऊ, आमच्याकडे 1 ते 100 पर्यंतचे अंक आहेत जे संपूर्ण अॅरेमध्ये ठेवले आहेत, कोणती संख्या गहाळ आहे हे शोधण्यासाठी सर्वोत्तम संख्या कोणती आहे? जर मुलाखतकर्त्याने विशेषतः 1 ते 100 चा उल्लेख केला असेल, तर खाली दिलेल्या मालिकेच्या बेरीजसाठी तुम्ही खालील युक्ती वापरू शकता. जर त्यात एकापेक्षा जास्त गहाळ आयटम असतील जे तुम्ही वापरू शकता बिटसेट: धडा, अर्थातच, जर तुमचा संभाषणकर्ता परवानगी देत ​​असेल तरच.

1) मालिकेची रक्कम. सूत्र: n (n + 1) / 2 (परंतु केवळ एका गहाळ क्रमांकासाठी कार्य करते)
2) वापरा: बिटसेट:, जर अॅरेमध्ये एकापेक्षा जास्त गहाळ घटक असतील.

मी ए बिटसेट: दुसर्या हेतूसाठी उपाय: हा उपयुक्त धडा सादर करणे. बर्‍याच मुलाखतींमध्ये मी जावा प्रोग्रामरना या धड्याबद्दल विचारले आहे, परंतु त्यापैकी अनेकांना याची माहितीही नाही. मला वाटते की ही समस्या कशी वापरावी हे शिकण्याचा एक मजेदार मार्ग आहे बिटसेट: तसेच जावा मध्ये.

तसे, जर तुम्ही मुलाखतीसाठी जात असाल तर या प्रश्नाव्यतिरिक्त, हे जाणून घेणे चांगले आहे अॅरेमध्ये डुप्लिकेट नंबर कसे शोधायचे आणि पूर्णांक अॅरेमध्ये दुसरा सर्वात मोठा क्रमांक शोधण्यासाठी प्रोग्राम. बरेचदा, त्यांना पाठपुरावा प्रश्न म्हणून विचारले जाते.

import java.util.Arrays;
import java.util.BitSet;
 
/**
 * Java program to find missing elements in a Integer array containing 
 * numbers from 1 to 100.
 *
 * @author Javin Paul
 */
public class MissingNumberInArray {
 
    public static void main(String args[]) {

        // one missing number
        printMissingNumber(new int[]{1, 2, 3, 4, 6}, 6);
 
        // two missing number
        printMissingNumber(new int[]{1, 2, 3, 4, 6, 7, 9, 8, 10}, 10);
 
        // three missing number
        printMissingNumber(new int[]{1, 2, 3, 4, 6, 9, 8}, 10);
 
        // four missing number
        printMissingNumber(new int[]{1, 2, 3, 4, 9, 8}, 10);
 
        // Only one missing number in array
        int[] iArray = new int[]{1, 2, 3, 5};
        int missing = getMissingNumber(iArray, 5);
        System.out.printf("Missing number in array %s is %d %n"
                           Arrays.toString(iArray), missing);
    }
   /**
    * A general method to find missing values from an integer array in Java.
    * This method will work even if array has more than one missing element.
    */
    private static void printMissingNumber(int[] numbers, int count) {
        int missingCount = count - numbers.length;
        BitSet bitSet = new BitSet(count);
 
        for (int number : numbers) {
            bitSet.set(number - 1);
        }
 
        System.out.printf("Missing numbers in integer array %s, with total number %d is %n",
        Arrays.toString(numbers), count);
        int lastMissingIndex = 0;

        for (int i = 0; i < missingCount; i++) {
            lastMissingIndex = bitSet.nextClearBit(lastMissingIndex);
            System.out.println(++lastMissingIndex);
        }
 
    }
   /**
    * Java method to find missing number in array of size n containing
    * numbers from 1 to n only.
    * can be used to find missing elements on integer array of 
    * numbers from 1 to 100 or 1 - 1000
    */
    private static int getMissingNumber(int[] numbers, int totalCount) {
        int expectedSum = totalCount * ((totalCount + 1) / 2);
        int actualSum = 0;
        for (int i : numbers) {
            actualSum += i;
        }
 
        return expectedSum - actualSum;
    }
 
}
 
Output
Missing numbers in integer array [1, 2, 3, 4, 6], with total number 6 is
5
Missing numbers in integer array [1, 2, 3, 4, 6, 7, 9, 8, 10], with total number 10 is
5
Missing numbers in integer array [1, 2, 3, 4, 6, 9, 8], with total number 10 is
5
7
10
Missing numbers in integer array [1, 2, 3, 4, 9, 8], with total number 10 is
5
6
7
10
Missing number in array [1, 2, 3, 5] is 4

आपण पाहू शकता की योग्य डेटा स्ट्रक्चर वापरल्याने समस्या सहजपणे सुटू शकते. हा या कार्यक्रमाचा मुख्य आधार आहे. अधिक कोडिंग समस्यांसाठी तुम्ही त्यांना तपासू शकता कोडिंग मुलाखत अभ्यासक्रम C क्लासिक कोडिंग मुलाखत पुस्तक कोडेड मुलाखती ब्रेकिंग, गूगल, Amazonमेझॉन, मायक्रोसॉफ्ट इत्यादी तंत्रज्ञान कंपन्यांसह प्रोग्रामिंग मुलाखतींमधून 189 क्रिप्टोग्राफिक प्रश्नांचा संग्रह.

एवढेच आहे 100 घटकांच्या अॅरेमध्ये गहाळ घटक शोधण्यासाठी प्रोग्राम. जसे मी म्हटल्याप्रमाणे, युक्ती जाणून घेणे चांगले आहे ज्यासाठी आपल्याला संख्यांची बेरीज मोजणे आवश्यक आहे आणि नंतर ती वास्तविक बेरीजमधून वजा करणे आवश्यक आहे, परंतु अॅरेमध्ये एकापेक्षा अधिक गहाळ क्रमांक असल्यास आपण ते वापरू शकत नाही. दुसरीकडे, बिटसेट: समाधान अधिक सामान्य आहे, कारण आपण पूर्णांक अॅरेमध्ये एकापेक्षा अधिक गहाळ मूल्य शोधण्यासाठी त्याचा वापर करू शकता. आपण अधिक प्रोग्रामिंग प्रश्न देखील तपासू शकता येथे:.