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

क्या इस "2 सम" प्रश्न जावास्क्रिप्ट को कोड करने का कोई और प्रभावी तरीका है?

<घंटा/>

हमारा काम एक ऐसा फ़ंक्शन लिखना है जो दो-योग की समस्या को सबसे अधिक रैखिक समय में हल करता है।

दो सम समस्या

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

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

समस्या को 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. जावास्क्रिप्ट में सम या विषम के रूप में सरणी का योग निर्धारित करना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पूर्णांकों की एक सरणी लेता है। यदि सरणी के सभी तत्वों का योग विषम है या सम है तो हमारे फ़ंक्शन को विषम स्ट्रिंग वापस करनी चाहिए। उदाहरण निम्नलिखित कोड है - {रिटर्न एसीसी + वैल;}, 0); const isSumEven =योग% 2 ===0; वापसी समईवन है? सम:विषम;}; क

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

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

  1. जावास्क्रिप्ट में विभाजन के औसत का सबसे बड़ा योग

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