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

JavaScript में "2 Sum" प्रश्न को कोड करने का अधिक कुशल तरीका


हमारा काम एक फ़ंक्शन लिखना है जो टू-सम समस्या को अधिकतम रैखिक समय में हल करता है।

टू सम समस्या

इंटीजर के एक एरे को देखते हुए, हमें दो संख्याएं ढूंढनी हैं जैसे कि वे एक विशिष्ट लक्ष्य संख्या तक जुड़ जाएं।

फ़ंक्शन twoSum को उन दो संख्याओं के इंडेक्स लौटाने चाहिए जो लक्ष्य तक जुड़ते हैं, और यदि कोई दो तत्व लक्ष्य तक नहीं जुड़ते हैं, तो हमारा फ़ंक्शन एक खाली एरे लौटाना चाहिए।

O(n) समय में समस्या हल करना

हम पहले से दिखाई देने वाली वस्तुओं का रिकॉर्ड रखने के लिए एक हैशमैप का उपयोग करेंगे, प्रत्येक पास पर हम जांचेंगे कि क्या मैप में कोई ऐसा तत्व मौजूद है जिसे वर्तमान तत्व में जोड़ने पर लक्ष्य तक जुड़ जाता है, यदि ऐसा कोई है तो हम उनके इंडेक्स वाला एक एरे लौटाएंगे और यदि हम इस कंडीशन को संतुष्ट किए बिना पूरे लूप से गुजरते हैं, तो हम एक खाली एरे लौटाएंगे।

उदाहरण

const arr = [2, 5, 7, 8, 1, 3, 6, 9, 4]; const sum = 10; const twoSum = (arr, sum) => {    const map = {};    for(let i = 0; i < arr.length; i++){       const el = sum - arr[i];       if(map[el]){          return [map[el], i];       };       map[arr[i]] = i;    };    return []; }; console.log(twoSum(arr, sum)); console.log(twoSum(arr, 12)); console.log(twoSum(arr, 13)); console.log(twoSum(arr, 14)); console.log(twoSum(arr, 24));

आउटपुट

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

[ 2, 5 ] [ 1, 2 ] [ 1, 3 ] [ 3, 6 ] []

  1. - JavaScript में ऐरे के योग को इवन या ऑड निर्धारित करना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो इंटीजर्स का एक ऐरे arr लेता है। हमारा फ़ंक्शन स्ट्रिंग odd लौटाएगा यदि ऐरे के सभी एलिमेंट्स का योग ऑड है या even यदि यह इवन है।उदाहरणनिम्नलिखित कोड है − { return acc + val; }, 0); const isSumEven = sum % 2 === 0; return isSumEven ? even : odd; }; co

  1. - JavaScript में अधिकतम संभव जोड़ी योग प्राप्त करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी, arr, लेता है जिसकी लंबाई 2n है, पहला और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन का कार्य इन पूर्णांकों को n पूर्णांक जोड़े में समूहित करना है, जैसे (a1, b1), (a2, b2), ..., (an, bn) जो 1 से n तक सभी i के लिए min(ai, bi) के योग को यथ

  1. - JavaScript में पार्टीशन के औसत का अधिकतम योग

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी, arr, को पहला तर्क और एक संख्या, num, (num <= arr का आकार), को दूसरा तर्क के रूप में लेता है। हमारे फ़ंक्शन को सरणी arr को अधिकतम num आसन्न (गैर-खाली) समूहों में विभाजित करना चाहिए ताकि कोई तत्व पीछे न छूटे। ऐसे सभी पार्टीशन में से, ह