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

जावास्क्रिप्ट में निरपेक्ष मान योग न्यूनीकरण

<घंटा/>

मान लीजिए, हमें पूर्णांकों की एक क्रमबद्ध सरणी दी गई है, आइए हम इसे arr कहते हैं। हमें ऐसा पूर्णांक x ज्ञात करना है कि −

. का मान
abs(a[0] - x) + abs(a[1] - x) + ... + abs(a[a.length - 1] - x)

सबसे छोटा संभव है (यहाँ एब्स निरपेक्ष मान को दर्शाता है)। यदि कई संभावित उत्तर हैं, तो सबसे छोटा उत्तर दें।

उदाहरण के लिए -

के लिए,

arr = [2, 4, 7],

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

absoluteValuesSumMinimization(arr) = 4

क्योंकि एब्स(2 - 4) + एब्स(4 - 4) + एब्स(7 - 4) =5 जो सबसे छोटा है जिसे हम किसी भी संख्या के साथ हासिल कर सकते हैं।

हम जानते हैं कि,

arr.length/2

आधी लंबाई लौटाता है।

सम-लंबाई वाले सरणियों के लिए, यह मध्य के दाईं ओर होगा। विषम-लंबाई वाले सरणियों के लिए, यह मध्य होगा।

  • यदि आवश्यक हो तो Math.ceil(arr.length/2) गोल हो जाता है, इसलिए 5 की एक सरणी के बीच में 2.5 -> 3 होगा। यह विषम-लंबाई वाले सरणियों को एक से बंद कर देता है।

  • Math.ceil(arr.length/2)-1 एक सूचकांक नीचे चला जाता है। यह सभी सरणियों के लिए एक-एक करके त्रुटियों को ठीक करता है।

उदाहरण

निम्नलिखित कोड है -

const arr = [2, 4, 7];
const absoluteValuesSumMinimization = (arr = []) => {
   const res = [];
   arr.forEach(num => {
      const sum = arr.reduce((accum, next) => {
         return accum + Math.abs(next - num);
      }, 0);
      res.push(sum);
   });
   const lowest = Math.min(...res);
   return arr[res.indexOf(lowest)];
};
console.log(absoluteValuesSumMinimization(arr));

आउटपुट

कंसोल पर आउटपुट निम्न है -

4

  1. जावास्क्रिप्ट सरणी। मान () जावास्क्रिप्ट सरणी। मान ()

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें किसी दिए गए सरणी के सभी मान होते हैं। array.values() फ़ंक्शन के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport"

  1. जावास्क्रिप्ट सरणी में सभी अद्वितीय मान कैसे प्राप्त करें? जावास्क्रिप्ट सरणी में सभी अद्वितीय मान कैसे प्राप्त करें?

    जावास्क्रिप्ट सरणी में सभी अद्वितीय मान प्राप्त करने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <t

  1. जावास्क्रिप्ट का उपयोग करके ऐरे में नेस्टेड ऑब्जेक्ट मानों का योग जावास्क्रिप्ट का उपयोग करके ऐरे में नेस्टेड ऑब्जेक्ट मानों का योग

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