কম্পিউটার

জাভাস্ক্রিপ্টে একটি প্রদত্ত সংখ্যার যোগফল অনন্য সংখ্যা জোড়ার সমস্ত সূচকের ক্ষুদ্রতম যোগফল খুঁজুন


আমাদের একটি ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে সংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি লক্ষ্য যোগফল নেয়। তারপরে আমরা অ্যারের মাধ্যমে লুপ করতে চাই এবং তারপর একে অপরের সাথে প্রতিটি মান যুক্ত করতে চাই (নিজেকে + নিজেই ছাড়া)।

এবং যদি লুপ করা দুটি মানের যোগফল টার্গেট যোগফলের সমান হয়, এবং মানগুলির জোড়া আগে সম্মুখীন না হয়, তাহলে আমরা তাদের সূচকগুলি মনে রাখব এবং শেষে, সমস্ত মনে রাখা সূচকগুলির সম্পূর্ণ যোগফল ফিরিয়ে দিই৷

যদি অ্যারে −

হয়
const arr = [1, 4, 2, 3, 0, 5];

এবং যোগফল হল −

const sum = 7;

তারপর আউটপুট 11 হওয়া উচিত, কারণ,

4 + 3 = 7
5 + 2 = 7

সূচক -

4 [index: 1]
2 [index: 2]
3 [index: 3]
5 [index: 5]

অর্থাৎ

1 + 2 + 3 + 5 = 11

উদাহরণ

এর জন্য কোড হবে −

const arr = [1, 4, 2, 3, 0, 5];
const findIndexSum = (arr = [], sum = 0) => {
   let copy = arr.slice(0);
   const used = [];
   let index = 0, indexFirst = 0, indexSecond, first, second;
   while (indexFirst < copy.length){
      indexSecond = indexFirst + 1;
      while(indexSecond < copy.length){
         first = copy[indexFirst];
         second = copy[indexSecond];
         if (first + second === sum){
            used.push(first, second);
            copy = copy.filter(el => first !== el && second !== el );
            indexFirst--;
            break;
         }
         indexSecond++;
      }
      indexFirst++;
   };
   const indexSum = used.sort().reduce((acc, val, ind) => {
      const fromIndex = ind === 0 || val !== used[ind - 1] ? 0 : index + 1 index = arr.indexOf(val, fromIndex);
      return acc + index;
   }, 0);
   return indexSum;
};
console.log(findIndexSum(arr, 7));

আউটপুট

এবং কনসোলে আউটপুট হবে −

11

  1. C++ এ একটি BST-তে প্রদত্ত যোগফল সহ সমস্ত জোড়া খুঁজুন

  2. প্রদত্ত সংখ্যা C# থেকে যোগফলের অনন্য সমন্বয় কীভাবে খুঁজে পাবেন?

  3. পাইথনে প্রদত্ত সংখ্যার সমস্ত অঙ্কের যোগফল খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে প্রদত্ত অ্যারেতে সমস্ত ভাল সূচক খুঁজুন