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

ऐरे का मैक्स स्लाइस खोजें | जावास्क्रिप्ट

<घंटा/>

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

इसलिए, स्लाइडिंग विंडो एल्गोरिथ्म इसके लिए बहुत उपयुक्त है। स्लाइडिंग विंडो एल्गोरिथम के माध्यम से इस समस्या को हल करने के लिए कोड होगा -

उदाहरण

const arr = [1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 6, 2, 1, 8, 1, 1 ,1 ,1, 8, 1,
1, 8, 8];
const map = {
   length: 0
};
let required = [];
for(start = 0, end = 0; end <= arr.length; ){
   if(map.length > 2){
      if(map[arr[start]] === 1){
         delete map[arr[start]];
         map.length --;
      }else{
         map[arr[start]]--;
      };
      start++;
      }else{
      if(end - start > required.length){
         required = arr.slice(start, end);
      };
      if(map[arr[end]]){
         map[arr[end]]++;
      }else{
         map[arr[end]] = 1;
         map.length++;
      }
      end++;
   }
}
console.log(required);

हमने सरणी में किसी भी बिंदु पर अलग-अलग वर्णों की गिनती को संग्रहीत करने के लिए एक नक्शा बनाए रखा और प्रत्येक पुनरावृत्ति पर सबसे लंबे उपसरणी की लंबाई की तुलना करते रहे, जब अलग-अलग वर्णों की संख्या 2 से अधिक हो गई, तो हमने सरणी को अगले स्थिर सरणी की खोज के लिए दाईं ओर खिसका दिया।

आउटपुट

कंसोल में आउटपुट होगा -

[
   1, 8, 1, 1, 1,
   1, 8, 1, 1, 8,
   8
]

  1. जावास्क्रिप्ट ऐरे स्लाइस ()

    एक सरणी में चयनित तत्वों को वापस करने के लिए जावास्क्रिप्ट की स्लाइस () विधि का उपयोग किया जाता है। वाक्य रचना इस प्रकार है - array.slice(start, end) ऊपर, प्रारंभ पैरामीटर एक पूर्णांक है जो निर्दिष्ट करता है कि चयन कहां से शुरू करना है, जबकि अंत वह है जहां चयन समाप्त होता है। आइए अब जावास्क्रिप्

  1. जावास्क्रिप्ट में ऐरे स्लाइस ()

    जावास्क्रिप्ट ऐरे स्लाइस () विधि चयनित वस्तुओं की नई सरणी को एक बड़े सरणी में लौटाती है। यह मूल सरणी को नहीं बदलता है। सरणी स्लाइस () विधि के लिए कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .नमूना { फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500;

  1. जावास्क्रिप्ट में Array.prototype.find () विधि।

    Array.prototype.find() विधि पहला तत्व मान देता है जो किसी सरणी में दी गई शर्त को पूरा करता है। Array.prototype.find() विधि के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"