समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एक सरणी लेता है, एआर, जो एक-आयामी अंतरिक्ष में विभिन्न क्षुद्रग्रहों की स्थिति का प्रतिनिधित्व करता है।
प्रत्येक क्षुद्रग्रह के लिए, निरपेक्ष मान उसके आकार का प्रतिनिधित्व करता है, और चिन्ह उसकी दिशा का प्रतिनिधित्व करता है (सकारात्मक अर्थ दाएं, नकारात्मक अर्थ बाएं)। प्रत्येक क्षुद्रग्रह समान गति से चलता है।
हमारा कार्य सभी टकरावों के बाद क्षुद्रग्रहों की स्थिति का पता लगाना है। यदि दो क्षुद्रग्रह मिलते हैं, तो छोटे वाले में विस्फोट हो जाएगा। यदि दोनों एक ही आकार के हों, तो दोनों फट जाएंगे। एक ही दिशा में गति करने वाले दो क्षुद्रग्रह कभी नहीं मिलेंगे।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr = [7, 12, -8];
आउटपुट
const output = [7, 12];
आउटपुट स्पष्टीकरण
12 और -8 आपस में टकराएंगे जिसके परिणामस्वरूप 12 हो जाएंगे।
7 और 12 कभी नहीं टकराएंगे।
उदाहरण
निम्नलिखित कोड है -
const arr = [7, 12, -8]; const findState = (arr = []) => { const track = [] for (const el of arr) { track.push(el) while (track[track.length - 1] < 0 && track[track.length - 2] > 0) { const a = -track.pop() const b = track.pop() if (a > b) { track.push(-a) } else if (a < b) { track.push(b) } } } return track }; console.log(findState(arr));
आउटपुट
[7, 12]