हमें एक JavaScript फ़ंक्शन लिखना है जो पहले तर्क के रूप में धनात्मक पूर्णांकों की एक सरणी और दूसरे तर्क के रूप में एक धनात्मक पूर्णांक लेता है।
फ़ंक्शन को उस सबसे छोटी उप-सरणी की लंबाई ढूंढकर वापस करनी चाहिए जिसे मूल सरणी से हटाने पर उसका योग दूसरे तर्क द्वारा निर्दिष्ट संख्या से विभाज्य हो जाए।
उदाहरण के लिए -
यदि इनपुट है -
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