मैं (gif देखें) प्रसिद्ध क्षितिज समस्या को हल करने की कोशिश कर रहा हूँ को जीत:मर्ज skylines, फूट डालो और
इनपुट
(1,11,5), (2,6, 7), (3,13,9), (12,7,16), (14,3,25), (1 9, 18,22), (23,13,29), (24,4,28)
लौटने चाहिए, अंक हैं कि पीछे अन्य इमारतों चला जाना चाहिए और Y- अक्ष में परिवर्तन का निर्देशांक लौटने क्षितिज में होना चाहिए:
(1, 11), (3, 13), (9, 0), (12, 7), (16, 3), (1 9, 18), (22, 3), (23 , 13), (29, 0)
मैं के रूप में O (n एलजी n का चलने का समय प्राप्त करने के लिए तो एक विभाजन का उपयोग करके दृष्टिकोण एल्गोरिथ्म के लिए करते हैं और जीत के लिए) की कोशिश कर रहा हूँ, लेकिन मैं कर रहा हूँ विलय भाग पर फंस गया।
हर बार जब मैं इसके बारे में सोचता हूं तो मुझे भ्रमित हो जाता है। उदाहरण के लिए, मैं जांचता हूं कि स्काइलाइन पहले कौन सा है। जिसमें निचला एक्स-समन्वय होता है, फिर मैं इसे जोड़ता हूं + यह मेरी नई स्काईलाइन पर हाइट है। लेकिन फिर मुझे दो अन्य स्काइलाइनों के पीछे एक आकाशगंगा मिलती है, मैं इस 'टक्कर' का पता कैसे लगा सकता हूं?
क्या मैं पहली बार जांचता हूं कि स्किलाइन्स के पास बाएं.एक्स 2 < right.x1 की जांच करके कोई ओवरलैप है या नहीं? लेकिन फिर मुझे लगता है कि मुझे पहले क्या देखना चाहिए? एक्स-अक्ष पर प्राथमिकता का ओवरलैप और सबकुछ एक बड़ा चिकन-अंडे की गड़बड़ी में बदल जाता है।
शायद मैं बहुत जटिल सोच रहा हूं? मुझे जो चाहिए वह उच्चतम वाई निर्देशांक का सेट है, हर चौराहे पर, क्या मुझे इस तरह से संपर्क करना चाहिए?
मुझे देखने दो यदि मैं सही ढंग से समझता हूं, एक्स-निर्देशांक को विभाजित करके आपका मतलब है, उदाहरण के लिए, (2, 4, 8) -> (2, 4), (8, 0), है ना? – Oxymoron
क्षमा करें, मैं 'वर्तमान आयताकार' से आपका क्या मतलब है इस पर स्पष्ट नहीं हूं। प्रारंभिक आयत की बस एक सूची? – Oxymoron
मुझे खेद है, शायद मैं इसके लिए बहुत बेवकूफ हूं, लेकिन मुझे अभी भी समझ में नहीं आता है। जब भी कोई शुरुआत सामने आती है: इसे आयतों के सेट में जोड़ें, लेकिन हमने अभी स्थापित किया है कि ये structs आयताकार नहीं हैं – Oxymoron