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

জাভাস্ক্রিপ্টে দুটি অ্যারেতে কমন উপাদান যেটির ইনডেক্স যোগফল ন্যূনতম


সমস্যা

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

ফাংশনটি arr1 এবং arr2-তে সাধারণ উপাদান খুঁজে বের করবে যেটির লিস্ট ইনডেক্স যোগফল (index sum) ন্যূনতম। যদি একাধিক উত্তর থাকে, তবে সেগুলো কোনো নির্দিষ্ট ক্রম ছাড়াই আউটপুট দেবে।

উদাহরণস্বরূপ, ইনপুট যদি নিচের মতো হয়:

const arr1 = ['a', 'b', 'c', 'd'];
const arr2 = ['d', 'a', 'c'];

তবে আউটপুট হবে:

const output = ['a'];

আউটপুট ব্যাখ্যা

'd' এবং 'a' দুটি অ্যারেতেই সাধারণ। 'd'-র ইনডেক্স যোগফল = 3 + 0 = 3, আর 'a'-র ইনডেক্স যোগফল = 0 + 1 = 1। তাই 'a' হলো প্রয়োজনীয় উপাদান।

উদাহরণ

নিচের কোডটি দেখুন:

const arr1 = ['a', 'b', 'c', 'd'];
const arr2 = ['d', 'a', 'c'];
const findCommon = (arr1 = [], arr2 = []) => {
  let sum = Infinity
  const map = arr1.reduce((acc, str, index) => {
    acc[str] = index
    return acc
  }, {})
  for (let i = 0; i < arr2.length; i++) {
    const index1 = map[arr2[i]]
    if (index1 >= 0 && index1 + i < sum) {
      sum = index1 + i
    }
  }
  const result = []
  for (let i = 0; i < arr2.length; i++) {
    const index1 = map[arr2[i]]
    if (index1 >= 0 && index1 + i === sum) {
      result.push(arr2[i])
    }
  }
  return result
}
console.log(findCommon(arr1, arr2));

আউটপুট

['a']

  1. জাভাস্ক্রিপ্টে রেঞ্জ সমষ্টি গণনা করা নির্দিষ্ট সীমার মধ্যে

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

  3. জাভাস্ক্রিপ্টে জোড় ইন্ডেক্সের সমষ্টি লাস্ট ইন্ডেক্স দিয়ে গুণ করা

  4. জাভাস্ক্রিপ্টে দুটি অ্যারেতে কমন উপাদান যেটির ইনডেক্স যোগফল ন্যূনতম