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

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


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

abs(a[0] - x) + abs(a[1] - x) + ... + abs(a[a.length - 1] - x)

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

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

के लिए,

arr = [2, 4, 7],

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

absoluteValuesSumMinimization(arr) = 4

क्योंकि abs(2 - 4) + abs(4 - 4) + abs(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() मेथड JavaScript array.values() मेथड

    JavaScript array.values() एक इटरेटर ऑब्जेक्ट लौटाता है जिसमें दिए गए ऐरे के सभी मान होते हैं। उदाहरण { fillEle.innerHTML = ; for (let x of arr.values()) { fillEle.innerHTML += x + </br>; } }); </script> </body> </html> आउटपुट यहां क

  1. जावास्क्रिप्ट एरे में सभी यूनिक वैल्यूज कैसे प्राप्त करें? जावास्क्रिप्ट एरे में सभी यूनिक वैल्यूज कैसे प्राप्त करें?

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

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

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