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

क्या JavaScript में सरणी को समान योग वाले n विभाजनों में बाँटा जा सकता है?


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

फ़ंक्शन को यह निर्धारित करना चाहिए कि क्या सरणी arr के तत्वों को num समूहों में वितरित करने का कोई तरीका है जिससे सभी समूहों का योग समान हो। यदि ऐसा कोई तरीका मौजूद है, तो फ़ंक्शन true वापस करे, अन्यथा false।

उदाहरण

यदि इनपुट सरणी और संख्या निम्न हैं:

const arr = [4, 6, 3, 3, 7, 4, 1]; const num = 4;

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

const output = true;

क्योंकि चार समूह हैं: [7], [1, 6], [4, 3], [4, 3]

कोड

const arr = [4, 6, 3, 3, 7, 4, 1]; const num = 4; const canDivide = (arr = [], num = 1) => {    const sum = arr.reduce((acc, num) => acc + num);    if (sum % num !== 0 || arr.some(num => num > sum / num)) {       return false;    }    const used = new Set();    return (function find(start, target) {       if (used.size === arr.length) {          return true;       }       if (target < 0) {          return false;       }       if (target === 0) {          return find(0, sum / num);       }       for (let i = start; i < arr.length; i++) {          if (!used.has(i)) {             used.add(i);             if (find(i + 1, target - arr[i])) {                return true;             }             used.delete(i);          }       }       return false;    })(0, sum / num); }; console.log(canDivide(arr,num));

समाधान के चरण

  • चरण 1. यदि कुल योग num से विभाज्य नहीं है या कोई संख्या sum/num से बड़ी है, तो false वापस करें।

  • चरण 2. प्रयुक्त संख्याओं को ट्रैक करने के लिए HashSet का उपयोग किया।

  • चरण 3. उप-विभाजन खोजना शुरू किया।

  • यदि सभी संख्याओं का उपयोग हो गया, तो काम पूरा।

  • यदि उपसमुच्चय का योग बहुत बड़ा हो गया, तो खोज रोक दी।

  • यदि एक उपसमुच्चय मिल गया, तो तब तक खोज जारी रखी जब तक सभी संख्याओं का उपयोग न हो जाए।

  • अंत में, हर अप्रयुक्त संख्या को आजमाया।

आउटपुट

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

true
  1. जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाना जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाना

    परिचय जावास्क्रिप्ट में ऐरे बनाने का एक तरीका new Array() कंस्ट्रक्टर का उपयोग करना है। हालांकि, ऐरे लिटरल सिंटैक्स [] आमतौर पर पसंद किया जाता है क्योंकि यह अधिक संक्षिप्त और तेज़ है। उदाहरण निम्न कोड जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाने के लिए है: <!DOCTYPE html> <html lang=&qu

  1. क्या हम JavaScript में जांच सकते हैं कि कोई प्रॉपर्टी ऑब्जेक्ट में है या नहीं? क्या हम JavaScript में जांच सकते हैं कि कोई प्रॉपर्टी ऑब्जेक्ट में है या नहीं?

    JavaScript में जांचने का कोड कि कोई प्रॉपर्टी ऑब्जेक्ट में मौजूद है या नहीं:उदाहरण<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&

  1. जावास्क्रिप्ट में ऑब्जेक्ट्स को सिंगल ऑब्जेक्ट ऐरे में मर्ज कैसे करें? जावास्क्रिप्ट में ऑब्जेक्ट्स को सिंगल ऑब्जेक्ट ऐरे में मर्ज कैसे करें?

    ऑब्जेक्ट्स को सिंगल ऑब्जेक्ट ऐरे में मर्ज करने के लिए निम्नलिखित कोड है: उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title&g