Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: विषम संख्या में आने वाली संख्या ढूंढना

उदाहरण

public class Demo { 
    static int oddOccurs(int myArr[], int arrSize) { 
        int i; 
        for (i = 0; i < arrSize; i++) { 
            int count = 0; 
            for (int j = 0; j < arrSize; j++) { 
                if (myArr[i] == myArr[j]) 
                    count++; 
            } 
            if (count % 2 != 0) 
                return myArr[i]; 
        } 
        return -1; 
    } 
    
    public static void main(String[] args) { 
        int myArr[] = new int[]{ 34, 56, 99, 34, 55, 99, 90, 11, 12, 11, 11, 34 }; 
        int arrSize = myArr.length; 
        System.out.println("ऐरे में विषम संख्या में आने वाली संख्या है: "); 
        System.out.println(oddOccurs(myArr, arrSize)); 
    } 
}

आउटपुट

ऐरे में विषम संख्या में आने वाली संख्या है 34

व्याख्या: Demo क्लास में 'oddOccurs' नामक एक स्टेटिक फंक्शन होता है। यह फंक्शन इंटीजर ऐरे के माध्यम से पुनरावृति करता है, और जांचता है कि ये संख्याएं कितनी बार होती हैं। विषम संख्या जो बार-बार होती है, उसे आउटपुट के रूप में लौटाया जाता है। मुख्य फंक्शन में, एक इंटीजर ऐरे परिभाषित किया जाता है, और ऐरे की लंबाई एक वेरिएबल को असाइन की जाती है। फंक्शन को ऐरे और उसकी लंबाई को पैरामीटर के रूप में पास करके कॉल किया जाता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है।

एल्गोरिदम विश्लेषण:

  • समय जटिलता: O(n²) - नेस्टेड लूप
  • स्थान जटिलता: O(1)
  • पहला विषम-घटना वाला तत्व लौटाता है

अनुकूलित O(n) समाधान - XOR दृष्टिकोण:

यदि केवल एक संख्या विषम बार आती है (बाकी सम बार):

public static int findOddOccurrence(int[] arr) {
    int result = 0;
    for (int num : arr) {
        result ^= num;  // XOR: a^a=0, a^0=a
    }
    return result;
}
// XOR गुण: जोड़े रद्द हो जाते हैं, विषम वाला बचा रहता है

HashMap दृष्टिकोण (सामान्य मामला):

public static int findOddOccurrenceMap(int[] arr) {
    Map freq = new HashMap<>();
    for (int num : arr) {
        freq.put(num, freq.getOrDefault(num, 0) + 1);
    }
    for (Map.Entry entry : freq.entrySet()) {
        if (entry.getValue() % 2 != 0) {
            return entry.getKey();
        }
    }
    return -1;
}

तुलना:

दृष्टिकोणसमयस्थानशर्तें
नेस्टेड लूपO(n²)O(1)कोई नहीं
XORO(n)O(1)केवल एक विषम घटना
HashMapO(n)O(n)सामान्य मामला
सॉर्टिंगO(n log n)O(1)ऐरे मॉडिफाई करता है
  1. जावा प्रोग्राम: वृत्त की परिधि (पेरिमीटर) निकालना जावा प्रोग्राम: वृत्त की परिधि (पेरिमीटर) निकालना

    इस लेख में हम समझेंगे कि वृत्त की परिधि (पेरिमीटर) कैसे निकाली जाती है। परिधि वृत्त के चारों ओर की दूरी होती है। परिधि का सूत्र: C = 2πr, जहां π = 3.14 (या 22/7) और r वृत्त की त्रिज्या है। डेमोनस्ट्रेशन इनपुट: वृत्त की त्रिज्या: 5 आउटपुट: वृत्त की परिधि: 31.428571428571427 एल्गोरिदम चरण 1 - शु

  1. Java प्रोग्राम: ट्रैपेज़ियम (Trapezium) का क्षेत्रफल ज्ञात करें Java प्रोग्राम: ट्रैपेज़ियम (Trapezium) का क्षेत्रफल ज्ञात करें

    इस लेख में, हम समझेंगे कि ट्रैपेज़ियम का क्षेत्रफल कैसे ज्ञात करें। ट्रैपेज़ियम एक प्रकार का चतुर्भुज है जिसमें कम से कम एक जोड़ी भुजाएं एक-दूसरे के समानांतर होती हैं। ट्रैपेज़ियम की समानांतर भुजाओं को बेस कहा जाता है और असमानांतर भुजाओं को लेग्स कहा जाता है। इसे ट्रेपेजॉयड भी कहा जाता है।ट्रैपेज़िय

  1. जावा प्रोग्राम से आयत का परिमाप (Perimeter of Rectangle) निकालना जावा प्रोग्राम से आयत का परिमाप (Perimeter of Rectangle) निकालना

    इस लेख में हम समझेंगे कि आयत का परिमाप कैसे निकाला जाता है। आयत का परिमाप आयत की सभी भुजाओं की लंबाई को जोड़कर निकाला जाता है। नीचे एक आयत का प्रदर्शन दिया गया है। आयत का परिमाप आयत की दो लंबाई और दो चौड़ाई की कुल लंबाई होती है: इनपुट मान लीजिए हमारा इनपुट है: आयत की भुजाओं की लंबाई हैं: 5, 8, 5,