हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है। फ़ंक्शन को मूल सरणी के आधार पर एक नई सरणी बनानी चाहिए। नई सरणी के प्रत्येक संबंधित तत्व को मूल सरणी के सभी तत्वों का गुणनफल होना चाहिए जिसमें वह तत्व शामिल हो।
उदाहरण के लिए -
यदि इनपुट सरणी है -
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) समय जटिलता
const product = arr.reduce((acc, val) => acc * val);
const res = [];
// O(n) समय जटिलता
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]