समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले तर्क के रूप में एआर, एआर लेता है। यह सरणी मूल रूप से हमारे पास मौजूद विभिन्न प्रकार के सिक्का मूल्यवर्ग को निर्दिष्ट करती है।
फ़ंक्शन का दूसरा तर्क एक संख्या, राशि है, जो उस राशि को निर्दिष्ट करता है जिसे हम जोड़ना चाहते हैं। हमारे फ़ंक्शन को बस उस राशि को जोड़ने के लिए आवश्यक न्यूनतम सिक्कों की संख्या वापस करनी चाहिए।
अगर हम किसी भी तरह से राशि तक नहीं पहुंच सकते हैं, तो हमें -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