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

C++ का उपयोग करके दिए गए तत्वों को हटाने के बाद सबसे छोटा खोजें

इस समस्या में, हमें दो सरणियाँ arr[] और del[] दी गई हैं। हमारा काम दिए गए तत्वों को हटाने के बाद सबसे छोटा खोजना है

हम सरणी एआर [] से मूल्यों को हटा देंगे जो डेल [] में मौजूद हैं। और फिर हटाने के बाद सबसे छोटा मान प्रिंट करें।

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

arr[] = {2, 5, 6, 9, 1}
del[] = {1, 5, 9}

आउटपुट

2

समाधान दृष्टिकोण

समस्या का एक सरल समाधान हैशिंग का उपयोग करना है। हम हैश तालिका में del[] सरणी के सभी मान सम्मिलित करेंगे। फिर हम सरणी एआर [] को पार करेंगे और जांचेंगे कि हैश तालिका में मान हैं या नहीं। यदि यह minVal से छोटा है। यदि हाँ, तो minVal प्रिंट करें।

उदाहरण

हमारे समाधान की कार्यप्रणाली को दर्शाने के लिए कार्यक्रम

#include <bits/stdc++.h>
using namespace std;
int findSmallestVal(int arr[], int m, int del[], int n){
   unordered_map<int, int> delVals;
   for (int i = 0; i < n; ++i) {
      delVals[del[i]]++;
   }
   int minVal = INT_MAX;
   for (int i = 0; i < m; ++i) {
   if (delVals.find(arr[i]) != delVals.end()) {
      delVals[arr[i]]--;
      if (delVals[arr[i]] == 0)
         delVals.erase(arr[i]);
      }
      else
         minVal = min(minVal, arr[i]);
   }
   return minVal;
}
int main(){
   int array[] = { 5, 12, 33, 4, 56, 12, 20 };
   int m = sizeof(array) / sizeof(array[0]);
   int del[] = { 12, 4, 56, 5 };
   int n = sizeof(del) / sizeof(del[0]);
   cout<<"The smallest value after the deleting element is "<<findSmallestVal(array, m, del, n);
   return 0;
}

आउटपुट

The smallest value after the deleting element is 12

  1. C++ का उपयोग करके किसी सरणी में किसी संख्या की आवृत्ति ज्ञात करें।

    मान लीजिए कि हमारे पास एक सरणी है। एन विभिन्न तत्व हैं। हमें सरणी में एक तत्व की आवृत्ति की जांच करनी है। मान लीजिए A =[5, 12, 26, 5, 3, 4, 15, 5, 8, 4], अगर हम 5 की बारंबारता ज्ञात करने की कोशिश करते हैं, तो यह 3 होगा। इसे हल करने के लिए, हम सरणी को बाईं ओर से स्कैन करेंगे, यदि तत्व दिए गए नंबर के

  1. C++ में दिए गए अंतर के साथ एक जोड़ी खोजें

    विचार करें कि हमारे पास एक सरणी A है, n विभिन्न तत्व हैं। हमें सरणी A से एक युग्म (x, y) ज्ञात करना है, ताकि x और y के बीच का अंतर दिए गए अंतर d के समान हो। मान लीजिए कि तत्वों की एक सूची A =[10, 15, 26, 30, 40, 70] की तरह है, और दिया गया अंतर 30 है, तो जोड़ी होगी (10, 40) और (30, 70) इस समस्या को

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

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