हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पहले तर्क के रूप में सकारात्मक पूर्णांक की एक सरणी लेता है और दूसरे तर्क के रूप में एक सकारात्मक पूर्णांक लेता है।
फ़ंक्शन को सबसे छोटे सबअरे की लंबाई का पता लगाना चाहिए और वापस करना चाहिए जिसे हमें मूल सरणी से हटाना चाहिए ताकि इसके योग को दूसरे तर्क द्वारा निर्दिष्ट संख्या से विभाज्य बनाया जा सके।
उदाहरण के लिए -
यदि इनपुट है -
const arr = [3, 8, 2, 6]; const num = 9;
तब आउटपुट होना चाहिए -
const output = 2
क्योंकि जिस उप-सरणी को हटाने की आवश्यकता है वह है [8, 2]
उदाहरण
निम्नलिखित कोड है -
const arr = [3, 8, 2, 6]; const num = 9; const minimumDeletion = (arr = [], num) => { const diff = arr.reduce((a, b) => a + b) % num; let res = diff == 0 ? 0 : arr.length; for (let i = 0, sum = 0, map = {0: -1}; i < arr.length; i++) { sum += arr[i]; const target = (sum % num - diff + num) % num; if (map[target] != undefined) { res = Math.min(res, i - map[target]); }; map[sum % num] = i; }; return res == arr.length ? -1 : res; }; console.log(minimumDeletion(arr, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
2