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

C++ में डुप्लीकेट II शामिल है


मान लीजिए कि हमारे पास एक सरणी और एक पूर्णांक k है, हमें यह जांचना होगा कि क्या सरणी में दो अलग-अलग सूचकांक i और j हैं जैसे कि nums[i] =nums[j] और i और j के बीच पूर्ण अंतर अधिकतम k है।

इसलिए, यदि इनपुट [1,2,4,1] और k =3 जैसा है, तो आउटपुट सही होगा

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

  • जोड़े की एक सरणी nn परिभाषित करें

  • इनिशियलाइज़ i :=0 के लिए, जब i - अंकों का आकार, अपडेट करें (i को 1 से बढ़ाएँ), करें -

    • nn के अंत में {nums[i], i} डालें

  • सरणी nn को सॉर्ट करें

  • इनिशियलाइज़ करने के लिए मैं :=1, जब i

    • यदि nn[i] का पहला तत्व nn[i - 1] के पहले तत्व के समान है और |nn का दूसरा [i] - nn का दूसरा [i - 1]|, तो -

      • सही लौटें

  • झूठी वापसी

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   bool containsNearbyDuplicate(vector<int>& nums, int k) {
      vector<pair<int, int> > nn;
      for (<) {
         nn.push_back(make_pair(nums[i], i));
      }
      sort(nn.begin(), nn.end());
      for (int i = 1; i < nn.size(); i++) {
         if (nn[i].first == nn[i - 1].first and abs(nn[i].second - nn[i - 1].second) <= k)
            return true;
         }
         return false;
      }
};
main(){
   Solution ob;
   vector<int> v = {1,2,4,1};
   cout << (ob.containsNearbyDuplicate(v, 3));
}

इनपुट

{1,2,4,1}

आउटपुट

1

  1. C++ में डुप्लीकेट सबट्री खोजें

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। हमें सभी डुप्लिकेट सबट्री खोजने होंगे। इसलिए प्रत्येक प्रकार के डुप्लिकेट सबट्री के लिए, हमें उनमें से किसी एक का रूट नोड वापस करना होगा। तो मान लीजिए हमारे पास − . जैसा एक पेड़ है डुप्लीकेट सबट्री हैं - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  1. C++ में सभी डुप्लीकेट सबट्री खोजें

    विचार करें कि हमारे पास एक बाइनरी ट्री है। हमें यह पता लगाना है कि पेड़ में कुछ डुप्लिकेट सबट्री हैं या नहीं। मान लीजिए हमारे पास नीचे जैसा एक बाइनरी ट्री है - आकार 2 के दो समान सबट्री हैं। प्रत्येक सबट्री में डी, बीडी और बीई दोनों भी डुप्लीकेट सबट्री हैं। हम ट्री सीरियलाइजेशन और हैशिंग प्रक्रिया

  1. जांचें कि क्या बाइनरी ट्री में C++ में आकार 2 या अधिक के डुप्लिकेट सबट्री हैं

    विचार करें कि हमारे पास एक बाइनरी ट्री है। हमें यह पता लगाना है कि पेड़ में आकार 2 या उससे अधिक के कुछ डुप्लिकेट सबट्री हैं या नहीं। मान लीजिए हमारे पास नीचे जैसा एक बाइनरी ट्री है - आकार 2 के दो समान उपप्रकार हैं। हम ट्री क्रमांकन और हैशिंग प्रक्रिया का उपयोग करके इस समस्या को हल कर सकते हैं। वि