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

JavaScript में सरणी में विशिष्ट जोड़े ढूंढना


समस्या

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

हमारे फ़ंक्शन को उन सभी इंडेक्स जोड़े (i, j) की घटनाओं को गिनना चाहिए जो निम्न शर्तों को पूरा करते हैं:

  • i < j, और

  • arr[i] > 2 * arr[j]

उदाहरण

यदि फ़ंक्शन का इनपुट है:

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));

कोड व्याख्या

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

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

आउटपुट

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

3
  1. - JavaScript में सरणी से मिलान करने वाली जोड़ी ढूंढना

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

  1. - JavaScript में सरणी में न्यूनतम समय अंतर ढूंढना

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

  1. - JavaScript में सरणी का माध्यिका इंडेक्स ढूंढना

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