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

जावास्क्रिप्ट में वांछित योग के साथ बाइनरी सबएरे

<घंटा/>

समस्या

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक बाइनरी सरणी में लेता है, एआर, पहले तर्क के रूप में, और एक संख्या, लक्ष्य, दूसरे तर्क के रूप में।

हमारा कार्य सरणी गिरफ्तारी में मौजूद उप-सरणी की संख्या की गणना करना है, जिनके तत्वों का योग गिनती के बराबर है। हमें अंततः यह गणना वापस कर देनी चाहिए।

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

इनपुट

const arr = [1, 0, 1, 0, 1];
const target = 2;

आउटपुट

const output = 4;

आउटपुट स्पष्टीकरण

क्योंकि वांछित उप-सरणी हैं:

[1,0,1][1,0,1,0]
[0,1,0,1]
[1,0,1]

उदाहरण

const arr = [1, 0, 1, 0, 1];
const target = 2;
const countSubarrays = (arr = [], target = 1) => {
   const map = {}
   let sum = 0
   let count = 0
   for (const num of arr) {
      map[sum] = (map[sum] || 0) + 1
      sum += num
      count += map[sum - target] || 0
   }
   return count
};
console.log(countSubarrays(arr, target));

आउटपुट

4

  1. जावास्क्रिप्ट का उपयोग करके बाइनरी खोज के साथ एक सरणी में खोजें

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता होती है जो संख्याओं की एक क्रमबद्ध सरणी (बढ़ते क्रम), एआर, पहले तर्क के रूप में, और दूसरे तर्क के रूप में एक लक्ष्य संख्या लेता है। हमारे फ़ंक्शन को बाइनरी सर्च एल्गोरिथम का उपयोग करके सरणी गिरफ्तारी में लक्ष्य खोजना चाहिए क्योंकि सरणी को सॉर्ट

  1. C++ में सम योग के साथ उपसरणियों की संख्या ज्ञात कीजिए

    इस समस्या में, हमें एन तत्वों से युक्त एक सरणी गिरफ्तारी [] दी जाती है। हमारा काम सम योग के साथ सबअरे को खोजना है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट arr[] = {2, 1, 3, 4, 2, 5} आउटपुट 28 स्पष्टीकरण उप-सरणी हैं - {2}, {4}, {2}, {2, 4}, {2, 2}, {1, 3}, {1, 5}, {3, 5}, {4, 2}, {2, 1, 3

  1. सी ++ में योग के साथ बाइनरी सबएरे

    मान लीजिए कि 0s और 1s की एक सरणी A दी गई है, हमें यह पता लगाना है कि कितने गैर-रिक्त उपसरणियों का योग S है? तो अगर इनपुट [1,0,1,0,1] और एस =2 जैसा है, तो परिणाम 4 होगा, क्योंकि उप-सरणी [1,0,1,0,1], [1,0 ,1,0,1], [1,0,1,0,1], [1,0,1,0,1]। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एटमोस्ट (