समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो arr को पहले आर्गुमेंट के रूप में लेता है। यह सरणी मूल रूप से विभिन्न प्रकार के सिक्का मूल्यवर्ग को निर्दिष्ट करती है जो हमारे पास हैं।
फ़ंक्शन का दूसरा आर्गुमेंट एक संख्या amount है, जो उस राशि को निर्दिष्ट करती है जिसे हम जोड़ना चाहते हैं। हमारे फ़ंक्शन को बस उस राशि तक पहुंचने के लिए आवश्यक न्यूनतम सिक्कों की संख्या वापस करनी चाहिए।
यदि हम किसी भी तरह से राशि तक नहीं पहुंच सकते, तो हमें -1 वापस करना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [1, 2, 5]; const amount = 17;
तो आउटपुट होना चाहिए -
const output = 4;
आउटपुट व्याख्या:
क्योंकि राशि 5 के 3 सिक्कों और 2 के 1 सिक्के का उपयोग करके प्राप्त की जा सकती है।
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 2, 5];
const amount = 17;
const minCoins = (arr = [], amount = 1) => {
const changes = [];
changes[0] = 0;
while(changes.length <= amount){
let change = Math.pow(2, 31) - 1;
for (let i = 0; i < arr.length; i++) {
if (changes.length - arr[i] < 0){
continue;
};
change = Math.min(change, 1 + changes[changes.length - arr[i]]);
};
changes.push(change);
};
return changes[amount] == Math.pow(2, 31) - 1 ? -1 : changes[amount];
};
console.log(minCoins(arr, amount));
आउटपुट
कंसोल में आउटपुट होगा -
4