কম্পিউটার

জাভাস্ক্রিপ্টে পার্টিশনের গড় সর্বোচ্চ যোগফল


সমস্যা

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

আমাদের ফাংশন অ্যারে অ্যারেটিকে সর্বাধিক সংখ্যায় সংলগ্ন (খালি নয়) গোষ্ঠীতে এমনভাবে বিভাজন করা উচিত যাতে আমরা পিছনে কোনও উপাদান না রাখি।

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

এবং সবশেষে আমাদের এই সর্বোচ্চ অর্থ ফেরত দেওয়া উচিত।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়

ইনপুট

const arr = [10, 2, 3, 4, 10];
const num = 3;

আউটপুট

const output = 23;

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

কারণ যদি আমরা অ্যারেটিকে এভাবে পার্টিশন করি -

[10], [2, 3, 4], [10]

গড়র যোগফল হবে −

10 + (9)/3 + 10 = 23

যা সমস্ত পার্টিশনের মধ্যে সর্বশ্রেষ্ঠ।

উদাহরণ

নিম্নলিখিত কোড -

const arr = [10, 2, 3, 4, 10];
const num = 3;
const greatestSum = (arr, num) => {
   const sum = (arr = []) => arr.reduce((acc, num) => acc + num, 0)
   let matrix = new Array(num + 1).fill(0).map(() => new Array(arr.length + 1).fill(0))
   for (let index = arr.length; index >= 0; index--) {
      const current = new Array(num + 1).fill(0).map(() => new Array(arr.length +    1).fill(0))
      for (let currentK = num; currentK >= 0; currentK--) {
         for (let count = arr.length - 1; count >= 0; count--) {

            if (index === arr.length && currentK === num) {
               current[currentK][count] = 0
            } else if (index < arr.length && currentK < num) {
               current[currentK][count] = Math.max(
               matrix[currentK][count + 1],matrix[currentK + 1][0] + sum(arr.slice(index - count, index + 1)) / (count + 1) )
            } else {
               current[currentK][count] = -Infinity
            }
         }
      }
      matrix = current
   }
   return matrix[0][0]
}
console.log(greatestSum(arr, num));

আউটপুট

23

  1. জাভাস্ক্রিপ্টে সর্বাধিক যোগফল এবং ক্ষুদ্রতম সূচক পার্থক্য

  2. জাভাস্ক্রিপ্টে জোড় বা বিজোড় হিসাবে অ্যারের যোগফল নির্ণয় করা

  3. জাভাস্ক্রিপ্ট ব্যবহার করে লক্ষ্য গড় পৌঁছানোর জন্য অবশিষ্ট সংখ্যার যোগফল খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে সর্বাধিক সম্ভাব্য জোড়া যোগফল অর্জন করা