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

জাভাস্ক্রিপ্টে অ্যারেতে নির্দিষ্ট যোগফল দিয়ে তিনটি উপাদান বের করা


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

ফাংশনটি শেষে সকল такой ট্রিপলেট (triplet) ধারণকারী একটি অ্যারে অফ অ্যারে রিটার্ন করবে, যদি না থাকে তবে খালি অ্যারে।

উদাহরণস্বরূপ —

ইনপুট অ্যারে এবং সংখ্যা যদি হয় —

const arr = [2, 5, 7, 8, 9, 11, 1, 6]; const sum = 22;

তাহলে আউটপুট হবে —

const output = [ [ 2, 9, 11 ], [ 5, 6, 11 ], [ 5, 8, 9 ], [ 6, 7, 9 ] ];

উদাহরণ

কোডটি নিচে দেওয়া হলো —

const arr = [2, 5, 7, 8, 9, 11, 1, 6]; const sum = 22; 
const threeSum = (arr = [], sum) => { 
  arr.sort((a,b) => a - b); 
  const res = []; 
  for(let i=0; i < arr.length - 2; i++){ 
    if(arr[i] != arr[i-1]){ 
      let left = i + 1; 
      let right = arr.length - 1; 
      while (left < right){ 
        const curr = arr[i] + arr[left] + arr[right]; 
        if (curr === sum){ 
          res.push([arr[i], arr[left], arr[right]]); 
          while(arr[left] == arr[left + 1]) left ++ 
          while(arr[right] == arr[right - 1]) right -- // making sure 
          our solution set does not contain duplicate res 
          left ++; 
          right --; 
        } else if(curr < sum) { 
          left ++ 
        } else if(curr > sum){ 
          right -- 
        }; 
      } 
    }; 
  }; 
  return res 
}; 
console.log(threeSum(arr, sum));

আউটপুট

কনসোল আউটপুট:

[ [ 2, 9, 11 ], [ 5, 6, 11 ], [ 5, 8, 9 ], [ 6, 7, 9 ] ]

  1. জাভাস্ক্রিপ্টে n সংখ্যক সমান সম বিশিষ্ট সাবঅ্যারে বের করা

  2. জাভাস্ক্রিপ্টে অ্যারেতে স্পেশাল ধরণের এলিমেন্ট খুঁজে বের করা

  3. জাভাস্ক্রিপ্টে অ্যারেতে নির্দিষ্ট যোগফল ও দৈর্ঘ্যের গোষ্ঠী বের করা

  4. জাভাস্ক্রিপ্টে reduce() ব্যবহার করে অ্যারে উপাদানগুলোর গুণফল বের করা