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

जांचें कि किसी दिए गए सरणी में सी ++ में प्रत्येक से k दूरी के भीतर डुप्लिकेट तत्व हैं या नहीं

यहां हम देखेंगे कि कैसे जांचा जाए कि एक अनसोल्ड ऐरे में एक दूसरे से k दूरी के भीतर डुप्लिकेट तत्व हैं या नहीं। मान लीजिए तत्वों की एक सूची {1, 2, 3, 1, 4, 5} है, यहां यदि k =3 है, तो प्रोग्राम सही होगा, क्योंकि दो 1s के बीच की दूरी 3 है।

हम इसे हैश टेबल का उपयोग करके हल करेंगे। चरण नीचे की तरह होंगे -

  • एक खाली हैश तालिका बनाएं
  • प्रत्येक अनुक्रमणिका i के लिए, सूची में तत्व e =arr[i] करने दें
    • यदि ई हैश तालिका में मौजूद है, तो सही लौटें
    • अन्यथा, हैश तालिका में e जोड़ें, और हैश तालिका से (i-k)वें तत्व को हटा दें, यदि यह मौजूद है, जब i>=K.

उदाहरण

#include<iostream>
#include<set>
using namespace std;
bool hasDuplicateWithDistK(int arr[], int n, int k) {
   set<int> element_set;
   for (int i = 0; i < n; i++) {
      if (element_set.find(arr[i]) != element_set.end())
         return true;
      element_set.insert(arr[i]);
      if (i >= k)
         element_set.erase(arr[i-k]);
   }
   return false;
}
int main () {
   int arr[] = {10, 5, 3, 4, 3, 5, 6};
   int n = sizeof(arr) / sizeof(arr[0]);
   if (hasDuplicateWithDistK(arr, n, 3))
      cout << "Duplicate element has found";
   else
      cout << "Duplicate element has not found";
}

आउटपुट

Duplicate element has found

  1. जांचें कि दी गई सरणी जोड़ीदार क्रमबद्ध है या नहीं सी ++ में

    हमारे पास n तत्वों के साथ एक सरणी A है। हमें यह जांचना होगा कि सरणी जोड़ीदार क्रमबद्ध है या नहीं। मान लीजिए कि सरणी {8, 10, 18, 20, 5, 15} जैसी है। यह जोड़ी के अनुसार क्रमबद्ध है (8, 10), (18, 20), (5, 15) क्रमबद्ध हैं। यदि सरणी में विषम संख्या में तत्व हैं, तो अंतिम को अनदेखा कर दिया जाएगा। दृष्टि

  1. C++ में दिए गए सरणी के तत्वों के भाज्य का GCD ज्ञात कीजिए

    मान लीजिए कि हमारे पास एन तत्वों के साथ एक सरणी ए है। हमें सरणी के सभी तत्वों के भाज्य का GCD ज्ञात करना है। मान लीजिए कि तत्व {3, 4, 8, 6} हैं, तो भाज्य का GCD 6 है। यहाँ हम ट्रिक देखेंगे। चूँकि दो संख्याओं का GCD वह सबसे बड़ी संख्या है, जो दोनों संख्याओं को विभाजित करती है, तो दो संख्याओं के भाज्य

  1. जांचें कि क्या किसी सरणी में पायथन में दी गई श्रेणी के सभी तत्व हैं

    मान लीजिए कि हमारे पास nums नामक एक सरणी है। हमारे पास एक श्रेणी [x, y] को परिभाषित करने वाली दो संख्याएँ x और y भी हैं। हमें यह जांचना है कि सरणी में दी गई श्रेणी में सभी तत्व हैं या नहीं। इसलिए, यदि इनपुट अंकों की तरह है =[5,8,9,6,3,2,4] x =2 y =6, तो आउटपुट सही होगा क्योंकि सभी तत्व हैं [2,3,4,5