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

C++ में सरणी में अद्वितीय तत्व जहां सभी तत्व k बार आते हैं सिवाय एक के

समस्या विवरण

हमारे पास एक सरणी A है। A में सभी तत्व m बार आते हैं, लेकिन एक तत्व केवल एक बार आता है। हमें उस अद्वितीय तत्व को ढूंढना है।

उदाहरण

यदि इनपुट A = [6, 2, 7, 2, 2, 6, 6], m = 3 है, तो आउटपुट 7 होगा।

एल्गोरिदम चरण

  • INT_SIZE := एक पूर्णांक प्रकार के चर के आकार का 8 गुना
  • आकार INT_SIZE का एक सरणी count परिभाषित करें और 0 से भरें
  • i := 0 से INT_SIZE-1 तक लूप करें:
    • j := 0 से size-1 तक लूप करें:
      • यदि (arr[j] AND 2^i) != 0, तो count[i]++
    • res := 0
  • i := 0 से INT_SIZE-1 तक लूप करें:
    • res := res + ((count[i] mod m) * 2^i)
  • res वापस करें

C++ कार्यान्वयन

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

int selectUnique(unsigned int arr[], int size, int m){
    int INT_SIZE = 8 * sizeof(unsigned int);
    int count[INT_SIZE];
    memset(count, 0, sizeof(count));
    for(int i = 0; i < INT_SIZE; i++)
        for(int j = 0; j < size; j++)
            if((arr[j] & (1 << i)) != 0)
                count[i] += 1;
    unsigned res = 0;
    for(int i = 0; i < INT_SIZE; i++)
        res += (count[i] % m) * (1 << i);
    return res;
}

int main(){
    unsigned int arr[] = { 6, 2, 5, 2, 2, 6, 6 };
    int size = sizeof(arr) / sizeof(arr[0]);
    int m = 3;
    cout << selectUnique(arr, size, m);
}

इनपुट

{ 6, 2, 5, 2, 2, 6, 6 }

आउटपुट

5
  1. - C++ का उपयोग करके सरणी में ऐसा तत्व खोजें जिससे सभी तत्व विभाज्य हों

    मान लीजिए हमारे पास कुछ तत्वों के साथ एक सरणी A है। हमें A से एक ऐसा तत्व ढूंढना है जिससे सभी तत्व इससे विभाज्य हों। मान लीजिए A = [15, 21, 69, 33, 3, 72, 81] है, तो तत्व 3 होगा, क्योंकि सभी संख्याएं 3 से विभाज्य हैं। इस समस्या को हल करने के लिए, हम A में सबसे छोटी संख्या लेंगे, फिर जांचेंगे कि क्य

  1. - C++ में ऐरे के सभी एलिमेंट्स को समान बनाने के लिए न्यूनतम डिलीट ऑपरेशन्स

    समस्या कथनn एलिमेंट्स का एक ऐरे दिया गया है जैसे कि एलिमेंट्स रिपीट हो सकते हैं। हम ऐरे से किसी भी संख्या में एलिमेंट्स डिलीट कर सकते हैं। कार्य ऐरे को समान बनाने के लिए डिलीट किए जाने वाले एलिमेंट्स की न्यूनतम संख्या ढूंढना है।arr[] = {10, 8, 10, 7, 10, -1, -4, 12}सभी ऐरे एलिमेंट्स को समान बनाने के

  1. - C++ में ऐरे के सभी क्रमागत युग्म तत्वों का निरपेक्ष अंतर

    इस समस्या में हम देखेंगे कि ऐरे में प्रत्येक युग्म के तत्वों के बीच निरपेक्ष अंतर कैसे प्राप्त करें। यदि n तत्व हैं, तो परिणामी ऐरे में n-1 तत्व होंगे। मान लीजिए तत्व हैं {8, 5, 4, 3}। परिणाम होगा |8-5| = 3, फिर |5-4| = 1, |4-3| = 1। एल्गोरिदम pairDiff(arr, n) begin res := परिणाम रखने के लिए एक