हमें एक JavaScript फ़ंक्शन लिखना है जो पहले और एकमात्र तर्क के रूप में पूर्णांकों की एक सरणी लेता है।
फ़ंक्शन को यह निर्धारित करने की आवश्यकता है कि क्या इनपुट सरणी के तत्वों का ऐसा संयोजन मौजूद है कि जब उन्हें दो समूहों में विभाजित किया जाए (समान तत्व हो सकते हैं या नहीं), तो दोनों समूहों का औसत बिल्कुल समान हो। यदि ऐसी कोई शर्त मौजूद है तो फ़ंक्शन को true वापस करना चाहिए, अन्यथा false।
उदाहरण के लिए -
यदि इनपुट सरणी है -
const arr = [6, 3, 2, 8, 1, 5, 7, 4];
तो आउटपुट होना चाहिए -
const output = true;
क्योंकि संयोजन है [8, 1, 5, 4] और [6, 3, 2, 7] क्योंकि दोनों समूहों का औसत 4.5 है।
उदाहरण
निम्नलिखित कोड देखें:
const arr = [6, 3, 2, 8, 1, 5, 7, 4];
const canHaveEqualAveragePartition = (arr = []) => {
const sum = arr.reduce((acc, val) => acc + val);
const array = Array(sum + 1).fill(false).map(() =>
Array(arr.length + 1).fill(false)
);
array[0][0] = true;
for (let i = 0; i < arr.length; ++i) {
for (let j = sum - arr[i]; j >= 0; --j) {
for (let k = arr.length - 2; k >= 0; --k) {
if (array[j][k]) {
array[j + arr[i]][k + 1] = true;
if ((j + arr[i]) * (arr.length - k - 1) == (sum - j - arr[i]) * (k + 1)) {
return true;
}
}
}
}
}
return false;
};
console.log(canHaveEqualAveragePartition(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
true