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

जावास्क्रिप्ट में अगले बड़े तत्व के लिए दूरी ढूँढना

<घंटा/>

समस्या

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

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

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

इनपुट

const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18];

आउटपुट

const output = [1, 1, 2, 1, 3, 1, 1, 1, 0, 0];

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

क्योंकि 12 का अगला बड़ा तत्व 13, 1 ब्लॉक दूर है,

13 के आगे बड़ा 14 है, 1 ब्लॉक दूर है,

14 के आगे बड़ा है 16, 2 ब्लॉक दूर इत्यादि।

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

उदाहरण

const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18];
const findNextGreater = (arr = []) => {
   const stack = []
   const res = new Array(arr.length).fill(0)
   for (let i = 0; i < arr.length; i++) {
      while (arr[i] > arr[stack[stack.length - 1]] && stack.length > 0) {
         const index = stack.pop()
         res[index] = i - index
      }
      stack.push(i)
   };
   return res
};
console.log(findNextGreater(arr));

आउटपुट

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

  1. जावास्क्रिप्ट में प्रत्येक नोड के लिए अगला बड़ा नोड ढूँढना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो लिंक की गई सूची के शीर्ष को पहले और एकमात्र तर्क के रूप में लेता है। node_i.val, और j सबसे छोटा संभव विकल्प है। यदि ऐसा j मौजूद नहीं है, तो अगला बड़ा मान 0 है। हमारे फ़ंक्शन को एक सरणी तैयार करनी चाहिए और वापस करनी चाहिए जिसमें संबंधित तत्व सूची मे

  1. सी++ में अगला ग्रेटर एलिमेंट III

    मान लीजिए कि हमारे पास एक सकारात्मक 32-बिट पूर्णांक n है, हमें सबसे छोटा 32-बिट पूर्णांक खोजने की आवश्यकता है, जिसमें पूर्णांक n में मौजूद समान अंक हैं और n से अधिक है। अगर हमारे पास ऐसी कोई सकारात्मक 32-बिट पूर्णांक संख्या नहीं है, तो -1 लौटाएं। तो अगर संख्या 213 है, तो परिणाम 231 होगा। इसे हल कर

  1. सी++ में अगला ग्रेटर एलिमेंट II

    मान लें कि हमारे पास एक गोलाकार सरणी है (अंतिम तत्व का अगला तत्व सरणी का पहला तत्व है), हमें प्रत्येक तत्व के लिए अगला ग्रेटर नंबर प्रदर्शित करना होगा। यहां एक संख्या x की अगली बड़ी संख्या, सरणी में इसके ट्रैवर्सिंग-ऑर्डर की पहली बड़ी संख्या है, इसका मतलब है कि हम इसकी अगली बड़ी संख्या को खोजने के ल