एक पूर्णांक सरणी संख्याओं को देखते हुए, एक सरणी उत्तर लौटाएं जैसे कि उत्तर[i] संख्याओं को छोड़कर संख्याओं के सभी तत्वों के उत्पाद के बराबर हो[i]।
अंकों के किसी भी उपसर्ग या प्रत्यय का उत्पाद 32-बिट पूर्णांक में फिट होने की गारंटी है।
आपको एक एल्गोरिदम लिखना होगा जो ओ(एन) समय में और डिवीजन ऑपरेशन का उपयोग किए बिना चलता है।
क्या आप O(1) अतिरिक्त स्थान जटिलता में समस्या का समाधान कर सकते हैं? (आउटपुट सरणी को अंतरिक्ष जटिलता विश्लेषण के लिए अतिरिक्त स्थान के रूप में नहीं गिना जाता है।)
इस समस्या को हल करने के लिए, हमें विभाजन ऑपरेशन का उपयोग किए बिना वर्तमान तत्व को छोड़कर सभी तत्वों के उत्पाद की गणना करने की आवश्यकता है। यह सरणी के ऊपर दो पासों का उपयोग करके किया जा सकता है:
हम उपसर्ग और प्रत्यय उत्पादों को संग्रहीत करने के लिए दो सरणियों का उपयोग कर सकते हैं, फिर अंतिम परिणाम प्राप्त करने के लिए उन्हें गुणा कर सकते हैं।
function productExceptSelf(nums: number[]): number[] { const n = nums.length; const prefixProducts = new Array(n).fill(1); const suffixProducts = new Array(n).fill(1); const result = new Array(n).fill(1); // Compute prefix products for (let i = 1; i = 0; i--) { suffixProducts[i] = suffixProducts[i 1] * nums[i 1]; } // Compute the result by multiplying prefix and suffix products for (let i = 0; iसमय जटिलता विश्लेषण:
मूल समाधान अच्छी तरह से काम करता है लेकिन उपसर्ग और प्रत्यय उत्पादों को संग्रहीत करने के लिए अतिरिक्त स्थान का उपयोग करता है।
हम पहले उपसर्ग उत्पादों को संग्रहीत करने के लिए आउटपुट सरणी का उपयोग करके ओ(1) अतिरिक्त स्थान का उपयोग करने के लिए समाधान को अनुकूलित कर सकते हैं और फिर प्रत्यय उत्पादों को शामिल करने के लिए इसे संशोधित कर सकते हैं।
function productExceptSelfOptimized(nums: number[]): number[] { const n = nums.length; const result = new Array(n).fill(1); // Compute prefix products in the result array for (let i = 1; i = 0; i--) { result[i] = result[i] * suffixProduct; suffixProduct *= nums[i]; } return result; }
console.log(productExceptSelf([1,2,3,4])); // [24,12,8,6] console.log(productExceptSelf([-1,1,0,-3,3])); // [0,0,9,0,0] console.log(productExceptSelf([2,2,2,2])); // [8,8,8,8] console.log(productExceptSelf([0,0])); // [0,0] console.log(productExceptSelf([5])); // This should not be a valid input as the minimum length is 2 console.log(productExceptSelf([1,2])); // [2, 1] console.log(productExceptSelfOptimized([1,2,3,4])); // [24,12,8,6] console.log(productExceptSelfOptimized([-1,1,0,-3,3])); // [0,0,9,0,0] console.log(productExceptSelfOptimized([2,2,2,2])); // [8,8,8,8] console.log(productExceptSelfOptimized([0,0])); // [0,0] console.log(productExceptSelfOptimized([5])); // This should not be a valid input as the minimum length is 2 console.log(productExceptSelfOptimized([1,2])); // [2, 1]
उपसर्ग योग सारणी:
इन-प्लेस एल्गोरिदम:
सरणी हेरफेर:
ऐसी समस्याओं और रणनीतियों का अभ्यास करके, आप अपने समस्या-समाधान कौशल में सुधार कर सकते हैं और विभिन्न कोडिंग चुनौतियों के लिए बेहतर ढंग से तैयार हो सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3