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

JavaScript में दो एरे का इंटरसेक्शन


हमारे पास नंबरों के दो एरे हैं, और हमें एक फ़ंक्शन लिखना आवश्यक है, मान लीजिए intersection() जो उनके इंटरसेक्शन की गणना करता है और एक एरे लौटाता है जिसमें किसी भी क्रम में इंटरसेक्टिंग तत्व होते हैं। परिणाम में प्रत्येक तत्व उतनी बार प्रकट होना चाहिए जितनी बार वह दोनों एरे में दिखाई देता है।

उदाहरण के लिए - यदि,

Input: arr1 = [1,2,3,1], arr2 = [1,3,1] Output: [1,3,1]

दृष्टिकोण

यदि एरे सॉर्टेड होते, तो हम टू-पॉइंटर दृष्टिकोण का उपयोग कर सकते थे जिसमें शुरू में दोनों संबंधित एरे के 0 की शुरुआत की ओर इशारा करते हैं और हम संबंधित पॉइंटर को बढ़ाकर आगे बढ़ सकते थे और यह समय के संबंध में O(m+n) जटिल होता जहां m और n एरे के आकार हैं।

लेकिन चूंकि हमारे पास अनसॉर्टेड एरे हैं, एरे को सॉर्ट करने और फिर इस दृष्टिकोण का उपयोग करने में कोई तर्क नहीं है, हम पहले एरे के हर मान को दूसरे के खिलाफ जांचेंगे और एक इंटरसेक्शन एरे बनाएंगे। इससे हमें O(n^2) समय लगेगा।

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

उदाहरण

const arr1 = [1, 2, 43, 5, 3, 7, 7,8, 4, 2]; const arr2 = [1, 1, 6, 6, 2, 78, 7, 2, 3, 7, 23, 5, 3]; const intersection = (arr1, arr2) => {    const res = [];    const { length: len1 } = arr1;    const { length: len2 } = arr2;    const smaller = (len1 < len2 ? arr1 : arr2).slice();    const bigger = (len1 >= len2 ? arr1 : arr2).slice();    for(let i = 0; i < smaller.length; i++){       if(bigger.indexOf(smaller[i]) !== -1){          res.push(smaller[i]);          bigger.splice(bigger.indexOf(smaller[i]), 1, undefined);       }    };    return res; }; console.log(intersection(arr1 ,arr2));

आउटपुट

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

[1, 2, 5, 3, 7, 7, 2]

  1. - JavaScript में अंतराल सरणियों का प्रतिच्छेदन खोजना

    समस्या JavaScript फ़ंक्शन जो अंतरालों की दो सरणियों arr1 और arr2 को लेता है जो युग्मवार असंयुक्त और क्रमबद्ध क्रम में हैं। एक बंद अंतराल [a, b] (a <= b के साथ) वास्तविक संख्याओं x के समुच्चय को दर्शाता है जहां a <= x <= b। दो बंद अंतरालों का प्रतिच्छेदन वास्तविक संख्याओं का एक समुच्चय है जो या तो ख

  1. - C# में दो Arrays का Intersection (साझा एलिमेंट्स)

    C# में दो Arrays का Intersection (साझा एलिमेंट्स) LINQ का Intersect एक्सटेंशन मेथड (System.Linq) दो सीक्वेंसेज के कॉमन एलिमेंट्स लौटाता है। यह सेट ऑपरेशन है: डुप्लिकेट्स हटा देता है और ऑर्डर गारंटी नहीं देता। सिंटैक्स var common = arr1.Intersect(arr2); उदाहरण using System; using System.Linq; clas

  1. - पायथन में दो सरणियों का प्रतिच्छेदन II

    मान लीजिए हमारे पास दो सरणी A और B हैं, इन सरणियों में कुछ तत्व हैं। हमें उनका प्रतिच्छेदन ढूंढना है। उदाहरण के लिए, यदि A = [1, 4, 5, 3, 6], और B = [2, 3, 5, 7, 9], तो प्रतिच्छेदन [3, 5] होगा। हल करने के चरण दो सरणी A और B लें यदि A की लंबाई B की लंबाई से छोटी है, तो उन्हें स्वैप करें सरणी में तत