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

JavaScript में सबएरे का सबसे बड़ा योग


समस्या

हमें एक JavaScript फ़ंक्शन लिखना है जो पहली आर्ग्युमेंट के रूप में गैर-ऋणात्मक पूर्णांकों की एक सरणी arr और दूसरी आर्ग्युमेंट के रूप में पूर्णांक num (num < arr.length) लेता है।

हमारे फ़ंक्शन का कार्य सरणी को num गैर-खाली सन्निकट सबएरे में विभाजित करना है। सरणी को इस तरह विभाजित किया जाना चाहिए कि यह इन num सबएरे में से सबसे बड़े योग को न्यूनतम करे। हमारा फ़ंक्शन तब सबएरे के बीच संचित सबसे बड़ा योग वापस करना चाहिए।

उदाहरण

यदि फ़ंक्शन का इनपुट है:

const arr = [5, 1, 4, 8, 7]; const num = 2;

तो आउटपुट होना चाहिए:

const output = 15;

आउटपुट व्याख्या

हालांकि मूल सरणी को सबएरे में विभाजित करने के चार तरीके हैं लेकिन यदि हम सरणी को दो समूहों [5, 1, 4] और [8, 7] में विभाजित करते हैं तो इन दो समूहों का योग सबसे छोटा होगा और इन दोनों में से बड़ा 8 + 7 = 15 है जिसे हमारा फ़ंक्शन वापस करना चाहिए।

कोड

const arr = [5, 1, 4, 8, 7]; const num = 2; const splitArray = (arr = [], num = 1) => {    let max = 0;    let sum = 0;    const split = (arr, mid) => {       let part = 1;       let tempSum = 0;       for (let num of arr) {          if (tempSum + num > mid) {             tempSum = num;             part++;          } else {             tempSum += num;          }       }       return part;    };    for (let num of arr) {       max = Math.max(max, num);       sum += num;    };    let low = max;    let high = sum;    while (low < high) {       let mid = Math.floor((high+low)/2);       let part = split(arr, mid);       if (part > num) {          low = mid + 1;       } else {          high = mid;       }    }    return low; }; console.log(splitArray(arr, num));

कोड व्याख्या:

हमने यहां बाइनरी सर्च का उपयोग यह जांचने के लिए किया है कि क्या हम सर्वश्रेष्ठ विभाजन ढूंढ सकते हैं।

आउटपुट

कंसोल में आउटपुट होगा:

15
  1. - JavaScript में लक्ष्य से छोटा सबसे बड़ा आयत योग

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं के एक 2-D सरणी को पहले आर्गुमेंट के रूप में और एक लक्ष्य योग संख्या को दूसरे आर्गुमेंट के रूप में लेता है। हमारे फ़ंक्शन को उस आयत का पता लगाना चाहिए जिसका योग सरणी में सभी आयतों में सबसे बड़ा है लेकिन दूसरे आर्गुमेंट द्वारा निर्दिष्ट लक्ष्य यो

  1. - JavaScript में n से विभाज्य योग वाली उपसरणियों की गिनती

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी arr को पहले आर्गुमेंट के रूप में और एक संख्या num को दूसरे आर्गुमेंट के रूप में लेता है। हमारे फ़ंक्शन को उन (सन्निकट, गैर-खाली) उपसरणियों की संख्या वापस करनी चाहिए जिनका योग num से विभाज्य है। उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है

  1. - JavaScript में वांछित योग वाली बाइनरी उपसरणियाँ

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो एक बाइनरी सरणी, arr, को पहला तर्क और एक संख्या, target, को दूसरा तर्क के रूप में लेता है। हमारा फ़ंक्शन सरणी arr में मौजूद उन उपसरणियों की संख्या गिनने वाला है जिनके तत्वों का योग target के बराबर है। हमें अंत में यह गिनती वापस करनी चाहिए। उदाहरण के लिए,