কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে ইউনিক নাম্বার পেয়ারের ইনডেক্স সমষ্টির ন্যূনতম যোগফল বের করা

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

যদি দুটি ভ্যালুর যোগফল টার্গেট সমের সমান হয় এবং সেই পেয়ার আগে এনকাউন্টার না হয়, তবে তাদের ইন্ডেক্স মনে রাখবে এবং শেষে সকল মনে থাকা ইন্ডেক্সের সমষ্টি রিটার্ন করবে।

অ্যারে: const arr = [1, 4, 2, 3, 0, 5];

সম: const sum = 7;

আউটপুট: 11 কারণ:

4 + 3 = 7 (index: 1, 3)
5 + 2 = 7 (index: 5, 2)
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. পাইথনে অ্যারের সব ভালো ইনডেক্স খুঁজে বের করা