हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। फ़ंक्शन को मूल सरणी के आधार पर एक नई सरणी बनाना चाहिए। नई सरणी का प्रत्येक संगत तत्व उस तत्व सहित मूल सरणी के सभी तत्वों का गुणनफल होना चाहिए।
उदाहरण के लिए -
यदि इनपुट ऐरे है -
const arr = [1, 2, 3, 4, 5];
तब आउटपुट ऐरे होना चाहिए -
const output = [120, 60, 40, 30, 24];
हमें इसे रैखिक समय और स्थिर स्थान में प्राप्त करना होगा (जाहिर है कि नई सरणी के निर्माण में उपयोग किए गए स्थान को छोड़कर)।
उदाहरण
निम्नलिखित कोड है -
const arr = [1, 2, 3, 4, 5];
const exclusiveProduct = (arr = []) => {
// O(n) time complexity
const product = arr.reduce((acc, val) => acc * val);
const res = [];
// O(n) time complexity
for(let i = 0; i < arr.length; i++){
const el = arr[i];
res[i] = product / el;
};
return res;
};
console.log(exclusiveProduct(arr)); आउटपुट
कंसोल पर आउटपुट निम्न है -
[120, 60, 40, 30, 24]