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

C++ में क्रमबद्ध सरणी II से डुप्लिकेट निकालें

मान लीजिए कि हमारे पास एक क्रमबद्ध सरणी संख्या है, हमें डुप्लिकेट को इन-प्लेस को हटाना होगा जैसे कि डुप्लिकेट तत्व अधिकतम दो बार दिखाई देंगे और नई लंबाई वापस कर देंगे। इस कार्य को करने के लिए हम अतिरिक्त स्थान नहीं ले सकते। हमें इसे O(1) राशि के साथ हल करना होगा। उदाहरण के लिए, यदि सरणी [0,0,0,1,1,1,1,2,3,3] की तरह है, तो आउटपुट [0,0,1,1,2,3,3] होगा। , इसकी लंबाई 7

. है

आइए चरणों को देखें -

  • लेन:=2 और n:=सरणी का आकार
  • अगर n <=2, तो n लौटाएं
  • i के लिए:=2 से n
    • अगर अंक[i] !=nums[len - 2] या nums[i] !=nums[len - 1]
      • nums[len] :=nums[i], और लेन को 1 से बढ़ाएं
  • रिटर्न लेन

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int removeDuplicates(vector<int>& nums) {
      int len = 2;
      int n = nums.size();
      if(n <= 2)return n;
      for(int i = 2; i < n; i++){
         if( nums[i] != nums[len - 2] || nums[i] != nums[len - 1]){
            nums[len] = nums[i];
            len++;
         }
      }
      return len;
   }
};
main(){
   Solution ob;
   vector<int> v = {0,0,0,1,1,1,1,2,3,3};
   cout << ob.removeDuplicates(v);
}

इनपुट

[0,0,0,1,1,1,1,2,3,3]

आउटपुट

7

  1. क्रमबद्ध सरणी से डुप्लिकेट कैसे निकालें और सी # का उपयोग करके लंबाई वापस कैसे करें?

    सरणी पहले से ही क्रमबद्ध है, हम दो पॉइंटर्स ii और jj रख सकते हैं, जहां ii धीमा-धावक है जबकि jj तेज-धावक है। जब तक nums[i] =nums[j]nums[i]=nums[j], हम डुप्लिकेट को छोड़ने के लिए jj बढ़ाते हैं। जब हमारा सामना nums[j] !=nums[i] से होता है, तो डुप्लिकेट रन समाप्त हो जाता है, इसलिए हमें इसके मान को nums

  1. जावा प्रोग्राम एक सरणी सूची से डुप्लिकेट निकालने के लिए

    इस लेख में, हम समझेंगे कि किसी सरणी सूची से डुप्लिकेट को कैसे हटाया जाए। एक सूची एक क्रमबद्ध संग्रह है जो हमें तत्वों को क्रमिक रूप से संग्रहीत और एक्सेस करने की अनुमति देता है। इसमें तत्वों को सम्मिलित करने, अद्यतन करने, हटाने और खोजने के लिए अनुक्रमणिका-आधारित विधियाँ शामिल हैं। इसमें डुप्लिकेट तत

  1. पायथन में क्रमबद्ध सरणी से डुप्लिकेट निकालें

    मान लीजिए कि हमारे पास एक क्रमबद्ध सूची ए है। हमें सभी डुप्लिकेट प्रविष्टियों को हटाने के बाद सरणी की लंबाई वापस करनी होगी। हमें इसे O(1) अतिरिक्त स्थान में करना है। इसलिए हमें ऑपरेशन जगह-जगह करना होगा। उदाहरण के लिए, मान लीजिए ए =[1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6] तो आउटपुट 6 होगा, क्योंकि