मैं पहले से ही यह प्रश्न पूछा stackoverflow , लेकिन शायद यह बेहतर इस साइट के लिए अनुकूल है।
यह समस्या है:
मेरे पास अहस्ताक्षरित पूर्णांकों के जोड़े हैं। मुझे उन्हें छांटने की जरूरत है। जोड़े के अंत वेक्टर को प्रत्येक जोड़ी में पहले नंबर से और प्रत्येक जोड़ी में दूसरे द्वारा गैर-स्पष्ट रूप से बिना किसी क्रम के छांटना चाहिए। प्रत्येक जोड़ी में किसी भी बिंदु पर स्वैप किए गए पहले और दूसरे तत्व हो सकते हैं। कभी-कभी कोई समाधान नहीं होता है, इसलिए मुझे एक अपवाद फेंकने की आवश्यकता है।
उदाहरण:
in pairs:
1 5
7 1
3 8
5 6
out pairs:
1 7 <-- swapped
1 5
6 5 <-- swapped
8 3 <-- swapped
^ ^ जोड़े को स्वैप किए बिना समाधान का निर्माण करना असंभव है। इसलिए हम जोड़े (7, 1), (3, 8) और (5, 6) स्वैप करते हैं और परिणाम बनाते हैं। या
in pairs:
1 5
6 9
out:
not possible
धन्यवाद
संपादित करें:
एसओ पर टॉम सिरगेडस ने सबसे अच्छा समाधान प्रस्तावित किया । ओ (लॉग (एन) * एन) में लागू करना और काम करना वास्तव में आसान है। उत्तर और रुचि के लिए आप सभी का धन्यवाद। मैंने वास्तव में mjqxxxx विश्लेषण का आनंद लिया।