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&