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

जावास्क्रिप्ट में दो अनुक्रम बढ़ाना

<घंटा/>

सख्ती से बढ़ते क्रम

एक क्रम कड़ाई से बढ़ रहा है अगर और केवल अगर arr[0]

समस्या

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

हम arr1 से arr2 तक किसी भी तत्व की अदला-बदली कर सकते हैं, जो समान सूचकांकों पर रहने के लिए होता है। इसका मतलब है कि हम arr1[i] को arr2[i] से स्वैप कर सकते हैं। दोनों अनुक्रमों को सख्ती से बढ़ाने के लिए हमारे फ़ंक्शन को स्वैप की न्यूनतम संख्या वापस करनी चाहिए।

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

इनपुट

const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];

आउटपुट

const output = 1;

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

क्योंकि अगर हम arr1[3] को arr2[3] से स्वैप करते हैं, तो दोनों सरणियाँ सख्ती से बढ़ती जाएंगी।

उदाहरण

निम्नलिखित कोड है -

const arr1 = [1, 3, 5, 4];
const arr2 = [1, 2, 3, 7];
const findSwaps = (arr1 = [], arr2 = []) => {
   let map = {
      true: 1,
      false: 0,
   };
   for (let i = 1; i < arr1.length; i++) {
      const current = {
         true: Infinity,
         false: Infinity,
   }
   if (arr1[i] > arr2[i - 1] && arr2[i] > arr1[i - 1]) {
      current.true = Math.min(
      current.true,
      map.false + 1,
   )
   current.false = Math.min(
      current.false,
      map.true)
   }
   if (arr2[i] > arr2[i - 1] && arr1[i] > arr1[i - 1]) {
      current.true = Math.min(
         current.true,
         map.true + 1,
      )
      current.false = Math.min(
         current.false,
         map.false)
      }
      map = current
   }
   return Math.min(
      map.false,
      map.true)
}
console.log(findSwaps(arr1, arr2));

आउटपुट

1

  1. दो जावास्क्रिप्ट ऑब्जेक्ट्स को कैसे मर्ज करें?

    दो जावास्क्रिप्ट ऑब्जेक्ट्स को एक साथ मर्ज करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  1. जावास्क्रिप्ट में दो सरणियों का सबसेट

    हमें एक JavaScript फ़ंक्शन लिखने की आवश्यकता है जो शाब्दिक के दो सरणियों में लेता है। इन बातों को ध्यान में रखते हुए, फ़ंक्शन को यह निर्धारित करना चाहिए कि दूसरी सरणी पहले सरणी का सबसेट है या नहीं - array1 के सभी मानों को array2 में परिभाषित किया जाना चाहिए यदि सरणी 1 में डुप्लिकेट मान मौजूद ह

  1. जावास्क्रिप्ट में सबसे लंबे समय तक बढ़ते अनुक्रमों की कुल संख्या

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन को सबसे लंबे समय तक बढ़ते अनुक्रमों (सन्निहित या गैर-सन्निहित) की संख्या को खोजने की आवश्यकता है। उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है इनपुट const arr = [2,