Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में पार्टीशन के औसत का अधिकतम योग

समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी, arr, को पहला तर्क और एक संख्या, num, (num <= arr का आकार), को दूसरा तर्क के रूप में लेता है।

हमारे फ़ंक्शन को सरणी arr को अधिकतम num आसन्न (गैर-खाली) समूहों में विभाजित करना चाहिए ताकि कोई तत्व पीछे न छूटे।

ऐसे सभी पार्टीशन में से, हमारे फ़ंक्शन को उस पार्टीशन को चुनना चाहिए जहां सभी समूहों के औसत का योग सबसे बड़ा हो।

और अंत में हमें यह सबसे बड़ा योग वापस करना चाहिए।

उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

इनपुट

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. - JavaScript में ऐरे के योग को इवन या ऑड निर्धारित करना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो इंटीजर्स का एक ऐरे arr लेता है। हमारा फ़ंक्शन स्ट्रिंग odd लौटाएगा यदि ऐरे के सभी एलिमेंट्स का योग ऑड है या even यदि यह इवन है।उदाहरणनिम्नलिखित कोड है − { return acc + val; }, 0); const isSumEven = sum % 2 === 0; return isSumEven ? even : odd; }; co

  1. - JavaScript में टारगेट एवरेज तक पहुंचने के लिए शेष नंबर्स का योग खोजना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो नंबर्स का एक ऐरे और एक सिंगल नंबर लेता है। हमारा फ़ंक्शन उस नंबर को खोजना चाहिए जिसे ऐरे में पुश करने पर उसका एवरेज दूसरे आर्गुमेंट द्वारा निर्दिष्ट नंबर के बराबर हो जाए।उदाहरणनिम्नलिखित कोड है − a + b, 0); let avg = sum / arr.length; let next = Mat

  1. - JavaScript में अधिकतम संभव जोड़ी योग प्राप्त करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी, arr, लेता है जिसकी लंबाई 2n है, पहला और एकमात्र तर्क के रूप में। हमारे फ़ंक्शन का कार्य इन पूर्णांकों को n पूर्णांक जोड़े में समूहित करना है, जैसे (a1, b1), (a2, b2), ..., (an, bn) जो 1 से n तक सभी i के लिए min(ai, bi) के योग को यथ