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

জাভাস্ক্রিপ্টে অ্যারেতে সাব-অ্যারে ডিগ্রি নির্ণয়

লিটারেলগুলির একটি অ্যারে-এর ডিগ্রি হলো এর যেকোনো একটি উপাদানের সর্বোচ্চ ফ্রিকোয়েন্সি।

const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3];

এই অ্যারেটির ডিগ্রি ৪, কারণ ৩ এই অ্যারেতে ৪ বার পুনরাবৃত্ত হয়েছে।

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা লিটারেলগুলির একটি অ্যারে গ্রহণ করবে। আমাদের ফাংশনের কাজ হলো অ্যারেটি থেকে সবচেয়ে ছোট কন্টিনিউয়াস সাব-অ্যারেটির দৈর্ঘ্য খুঁজে বের করা যিসব ডিগ্রি পুরো অ্যারেটির ডিগ্রির সমান।

উদাহরণ

const arr = [1, 2, 3, 3, 5, 6, 4, 3, 8, 3]; 
const findShortestSubArray = (arr = []) => { 
  let range = new Map(), maxDegree = 0, minLength = Infinity; 
  for(let i = 0; i < arr.length; i++){ 
    if(range.has(arr[i])) { 
      let start = range.get(arr[i])[0]; 
      let degree = range.get(arr[i])[2]; 
      degree++; 
      range.set(arr[i], [start, i, degree]); 
      if(degree > maxDegree) maxDegree = degree; 
    } else { 
      let degree = 1; 
      range.set(arr[i],[i, i, degree]); 
      if(degree > maxDegree) maxDegree = degree; 
    } 
  } 
  for (let key of range.keys()){ 
    let val = range.get(key); 
    if(val[2] === maxDegree){ 
      let diff = (val[1] - val[0]) + 1; 
      if(diff < minLength) minLength = diff; 
    } 
  } 
  return minLength; 
}; 
console.log(findShortestSubArray(arr));

আউটপুট

কনসোলে আউটপুট হবে -

8
  1. জাভাস্ক্রিপ্ট Array shift() মেথড

  2. জাভাস্ক্রিপ্ট Array reverse() মেথড

  3. জাভাস্ক্রিপ্ট array.keys() মেথড: ব্যবহার এবং উদাহরণ

  4. জাভাস্ক্রিপ্ট Array.isArray() মেথড