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

C++ में दिए गए पूर्णांक ऐरे के सभी विशिष्ट एलिमेंट्स प्रिंट करना


इस समस्या में, हमें पूर्णांक मानों का एक ऐरे दिया गया है। हमारा कार्य ऐरे के सभी विशिष्ट एलिमेंट्स प्रिंट करना है। आउटपुट में केवल विशिष्ट मान होने चाहिए।

उदाहरण

Input: array = {1, 5, 7, 12, 1, 6, 10, 7, 5} 
Output: 1 5 7 12 6 10

विधि 1: नेस्टेड लूप (O(n²))

इस समस्या को हल करने के लिए, हमें ऐरे के एलिमेंट्स की विशिष्टता की जांच करनी होगी। इसके लिए, हम दो नेस्टेड लूप का उपयोग करेंगे। बाहरी लूप मान लेगा और आंतरिक लूप उसके साथ बाकी मानों की जांच करेगा। यदि एक से अधिक मान मौजूद हैं तो केवल एक प्रिंट करें।

#include <iostream> 
using namespace std; 

void printDistinctValues(int arr[], int n) { 
    for (int i = 0; i < n; i++) { 
        int j; 
        for (j = 0; j < i; j++) 
            if (arr[i] == arr[j]) 
                break; 
        if (i == j) 
            cout << arr[i] << "\t"; 
    } 
} 

int main() { 
    int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    cout << "Distinct values of the array are :\n"; 
    printDistinctValues(arr, n); 
    return 0; 
}

आउटपुट

Distinct elements of the array are - 1 5 6 7 10 12

यह समाधान आसान है लेकिन दो लूप का उपयोग करता है जिससे इसकी कॉम्प्लेक्सिटी n² क्रम की होती है।

विधि 2: सॉर्टिंग का उपयोग करके (O(n log n))

एक अधिक कुशल विधि सॉर्टिंग का उपयोग करना होगी। सॉर्टेड ऐरे में, समान संख्याओं की घटनाएं लगातार हो जाती हैं। अब, हम विशिष्ट एलिमेंट्स को आसानी से प्रिंट कर सकते हैं और यह कम स्पेस लेता है।

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

void printDistinctElements(int arr[], int n) { 
    sort(arr, arr + n); 
    for (int i = 0; i < n; i++) { 
        while (i < n-1 && arr[i] == arr[i+1]) 
            i++; 
        cout << arr[i] << "\t"; 
    } 
} 

int main() { 
    int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; 
    int n = sizeof(arr) / sizeof(arr[0]); 
    cout << "Distinct elements of the array are :\n"; 
    printDistinctElements(arr, n); 
    return 0; 
}

आउटपुट

Distinct elements of the array are - 1 5 6 7 10 12

विधि 3: विज़िटेड सेट का उपयोग करके (O(n))

एक और अधिक प्रभावी समाधान विज़िटेड एलिमेंट्स को ट्रैक करके है। हम ऐरे को पार करेंगे और ऐरे के सभी विज़िटेड एलिमेंट्स का ट्रैक रखेंगे।

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

void printDistinctElements(int arr[], int n) { 
    unordered_set<int> visited; 
    for (int i = 0; i < n; i++) { 
        if (visited.find(arr[i]) == visited.end()) { 
            visited.insert(arr[i]); 
            cout << arr[i] << "\t"; 
        } 
    } 
} 

int main() { 
    int arr[] = {1, 5, 7, 12, 1, 6, 10, 7, 5}; 
    int n = 7; 
    cout << "Distinct numbers of the array are :\n"; 
    printDistinctElements(arr, n); 
    return 0; 
}

आउटपुट

Distinct numbers of the array are - 1 5 7 12 6 10

  1. C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें C++ में दिए गए स्रोत से गंतव्य तक सभी पथ प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ दिया गया है और हमें ग्राफ के स्रोत से गंतव्य तक सभी पथ प्रिंट करने हैं। निर्देशित ग्राफ एक ग्राफ है जिसमें किनारे शीर्ष a से b की ओर निर्देशित होते हैं। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत = K गंतव्य = P आउटपुट: P यहां, हमने K से P तक के पथ ढूंढे

  1. - C# प्रोग्राम दिए गए पूर्णांक सरणी के सभी विशिष्ट तत्वों को प्रिंट करने के लिए

    हमने एक सरणी और एक डिक्शनरी सेट की है ताकि विशिष्ट तत्व प्राप्त हो सकें। int[] arr = { 88, 23, 56, 96, 43 }; var d = new Dictionary(); डिक्शनरी संग्रह हमें सूची की कुंजी और मान प्राप्त करने की अनुमति देता है। दिए गए पूर्णांक सरणी के विशिष्ट तत्वों को प्रदर्शित करने का कोड निम्नल

  1. - दिए गए पूर्णांक सरणी के सभी विशिष्ट तत्व प्रिंट करने का पायथन प्रोग्राम

    समस्या विवरण एक पूर्णांक सरणी दी गई है। सरणी के तत्व डुप्लिकेट हो सकते हैं। हमारा कार्य विशिष्ट मान प्रदर्शित करना है। उदाहरण इनपुट:: A=[1,2,3,4,2,3,5,6] आउटपुट [1,2,3,4,5,6] एल्गोरिदम सरणी तत्व इनपुट करें। फिर एक-एक करके सभी तत्वों को चुनें। फिर जांचें कि चुना गया तत्व पहले से प्रदर्शित है या न