मैं एक एल्गोरिथ्म सवाल है खोजने के लिए अधिकतम {सरणी [i] -एरे [जे]} एक बाधा के साथ: i> जे।एल्गोरिथ्म एक सरणी में सबसे बड़ा ड्रॉप
सरल समाधान यह है कि दो लूप और I और j के सभी संभावित मानों के माध्यम से जाते हैं, लेकिन समय जटिलता ओ (एन * एन) है।
और एक बेहतर समाधान मुझे लगता है कि पहले सरणी के इंडेक्स को मैप करना है, सरणी को सॉर्ट करें और सबसे बड़ी बूंद खोजने के लिए सरणी के माध्यम से जाएं। यह जटिलता ओ (nlogn) है।
रैखिक समय जटिलता के साथ कोई समाधान है? और कैसे?
पीएस: मैंने एक बार एक रैखिक समाधान सोचा: दो अतिरिक्त सरणी बनाएं, एक को दिए गए सरणी के अधिकतम मूल्य को शुरुआत से अंत तक रिकॉर्ड करना है, और दूसरे को अंत से लेकर शुरुआत तक न्यूनतम मूल्य तक रिकॉर्ड करना है। फिर, दो सरणी एक पास के माध्यम से जाओ। हालांकि, किसी ने सोचा कि सही ढंग से नहीं और बहुत बड़ी जगह लेना। तो मैं एक बेहतर समाधान जानना चाहता हूं। - lijuanliu
आह, पाठ्यक्रम होमवर्क से एक सवाल। क्या आप इसे बेहतर तरीके से हल नहीं करना चाहिए? – arkascha
@arkascha: मैंने एक बार एक रैखिक समाधान सोचा था: दो अतिरिक्त सरणी बनाएं, एक को दिए गए सरणी के अधिकतम मूल्य को शुरुआत से अंत तक रिकॉर्ड करना है, और दूसरे को अंत से लेकर शुरुआत तक न्यूनतम मान रिकॉर्ड करना है। फिर, दो सरणी एक पास के माध्यम से जाओ। हालांकि, किसी ने सोचा कि सही ढंग से नहीं और बहुत बड़ी जगह लेना। तो मैं एक बेहतर समाधान जानना चाहता हूं। – lijuanliu
आपने मेरा बिंदु नहीं पकड़ा ;-) – arkascha