কম্পিউটার

একটি অ্যারে জাভাস্ক্রিপ্টে সাবয়ারের ডিগ্রী খোঁজা


লিটারেলের একটি অ্যারের ডিগ্রীকে এর উপাদানগুলির যেকোনো একটির সর্বাধিক ফ্রিকোয়েন্সি হিসাবে সংজ্ঞায়িত করা হয়।

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

এই অ্যারের ডিগ্রী 4, কারণ এই অ্যারেতে 3 4 বার পুনরাবৃত্তি হয়।

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

উদাহরণ

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. জাভাস্ক্রিপ্ট অ্যারে শিফট()

  2. জাভাস্ক্রিপ্ট অ্যারে বিপরীত()

  3. JavaScript array.keys()

  4. JavaScript Array.isArray()