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

O(n) समय और O(1) अतिरिक्त स्पेस में ऐरे में डुप्लीकेट खोजें C++ में

मान लीजिए हमारे पास 0 से n-1 तक की संख्याओं की एक सूची है। एक संख्या कई बार दोहराई जा सकती है। हमें बिना किसी अतिरिक्त स्पेस के दोहराने वाली संख्याओं को खोजना है। यदि n = 7 का मान है, और सूची [5, 2, 3, 5, 1, 6, 2, 3, 4, 5] जैसी है। उत्तर 5, 2, 3 होगा।

इसे हल करने के लिए, हमें इन चरणों का पालन करना होगा -

  • सूची में प्रत्येक तत्व e के लिए, निम्नलिखित चरण करें -
    • sign := A[absolute value of e]
    • यदि sign धनात्मक है, तो इसे ऋणात्मक बनाएं
    • अन्यथा, यह एक पुनरावृत्ति है।

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;

void findDuplicates(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        if (arr[abs(arr[i])] >= 0)
            arr[abs(arr[i])] *= -1;
        else
            cout << abs(arr[i]) << " ";
    }
}

int main() {
    int arr[] = {5, 2, 3, 5, 1, 6, 2, 3, 4, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    findDuplicates(arr, n);
}

आउटपुट

5 2 3 1

  1. C++ में डुप्लिकेट उपट्री ढूंढना C++ में डुप्लिकेट उपट्री ढूंढना

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें सभी डुप्लिकेट उपट्री ढूंढने हैं। इसलिए प्रत्येक प्रकार के डुप्लिकेट उपट्री के लिए, हमें उनमें से किसी एक का रूट नोड लौटाना है। मान लीजिए हमारे पास ऐसा ट्री है: डुप्लिकेट उपट्री हैं: हल का दृष्टिकोण इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  1. - C++ में अंकगणितीय माध्य और ज्यामितीय माध्य का उपयोग करके हार्मोनिक माध्य ढूंढना

    यहां हम देखेंगे कि अंकगणितीय माध्य (Arithmetic Mean) और ज्यामितीय माध्य (Geometric Mean) का उपयोग करके हार्मोनिक माध्य (Harmonic Mean) कैसे प्राप्त करें। इन तीनों माध्यमों के सूत्र नीचे दिए गए हैं: अंकगणितीय माध्य (AM) = (a + b) / 2 ज्यामितीय माध्य (GM) = √(a × b) हार्मोनिक माध्य (HM) =

  1. - C++ में अनसॉर्टेड सरणी में फ्लोर और सील ढूंढना

    यहां हम देखेंगे कि अनसॉर्टेड सरणी में फ्लोर (floor) और सील (ceiling) कैसे ढूंढें। फ्लोर मान वह सबसे बड़ा तत्व है जो x से छोटा या बराबर है, और सील मान वह सबसे छोटा मान है जो x से बड़ा है। यदि सरणी A = [5, 6, 8, 9, 6, 5, 5, 6] है, और x=7 है, तो फ्लोर मान 6 है, और सील मान 8 है। इस समस्या को हल करने के