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

जावास्क्रिप्ट में सरणी में अजीबोगरीब जोड़े ढूँढना

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले और एकमात्र तर्क के रूप में इंटीजर, एआर की एक सरणी लेता है।

हमारे फ़ंक्शन को ऐसे सभी सूचकांक जोड़े (i, j) की घटना की गणना करनी चाहिए जो निम्नलिखित शर्तों को पूरा करते हैं -

  • मैं <जे, और

  • गिरफ्तारी [i]> 2 * गिरफ्तार [जे]

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -

const input = [2, 4, 3, 5, 1];

तब आउटपुट होना चाहिए -

const output = 3;

आउटपुट स्पष्टीकरण:

क्योंकि तीन वांछित जोड़े हैं -

[4, 1], [3, 1] and [5, 1]

उदाहरण

इसके लिए कोड होगा -

const arr = [2, 4, 3, 5, 1];
const peculiarPairs = (arr = []) => {
   let count = 0;
   let copy = arr.slice().sort((a,b)=> a - b);
   let bit = new Array(arr.length+1).fill(0);
   for (const num of arr){
      count += search(bit, indexed(copy, 2*num+1));
      bit = insert(bit, indexed(copy, num));
   };
   return count;
};
const search = (bit, i) => {
   let sum = 0;
   while (i < bit.length){
      sum += bit[i];
      i += i & -i;
   }
   return sum;
}
const insert = (bit, i) => {
   while (i > 0){
      bit[i] += 1;
      i -= i & -i;
   }
   return bit;
}
const indexed = (arr, val) => {
   let l = 0, r = arr.length-1, m = 0;
   while (l <= r) {
      m = l + ((r-l) >> 1);
      if (arr[m] >= val){
         r = m-1;
      }else{
         l = m+1;
      }
   }
   return l+1;
}
console.log(peculiarPairs(arr));

कोड स्पष्टीकरण

हमने यहां एक बाइनरी इंडेक्स ट्री (बीआईटी) का उपयोग किया है -

बाइनरी इंडेक्स ट्री या बीआईटी को एक सरणी के रूप में दर्शाया जाता है। सरणी को BITree [] होने दें। बाइनरी इंडेक्स ट्री का प्रत्येक नोड इनपुट सरणी के कुछ तत्वों के योग को संग्रहीत करता है। बाइनरी इंडेक्स ट्री का आकार इनपुट सरणी के आकार के बराबर है।

आउटपुट

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

3

  1. जावास्क्रिप्ट में एक सरणी से मिलान करने वाली जोड़ी ढूँढना

    हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो पूर्णांक की एक सरणी लेता है जिसमें कुछ दोहराए जाने वाले मान हो सकते हैं। हमारे फ़ंक्शन को समान पूर्णांकों के जोड़े की संख्या का पता लगाना चाहिए जिन्हें हम सरणी से निकाल सकते हैं। उदाहरण के लिए - यदि इनपुट ऐरे है - const arr = [1, 5, 2, 1, 6, 2,

  1. जावास्क्रिप्ट में एक सरणी में न्यूनतम समय अंतर ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो घंटे:मिनट प्रारूप में 24 घंटे के घड़ी समय बिंदुओं की एक सरणी लेता है। हमारे फ़ंक्शन को सरणी में किन्हीं दो समय बिंदुओं के बीच न्यूनतम मिनट का अंतर खोजना चाहिए। उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है - const arr = ["23:59","00:0

  1. जावास्क्रिप्ट में सरणी की औसत अनुक्रमणिका ढूँढना

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