समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो एक सरणी, arr, लेता है जो एक-आयामी स्थान में विभिन्न क्षुद्रग्रहों की स्थितियों को दर्शाती है।
प्रत्येक क्षुद्रग्रह के लिए, निरपेक्ष मान उसके आकार को दर्शाता है, और चिह्न उसकी दिशा को दर्शाता है (धनात्मक का अर्थ दाएं, ऋणात्मक का अर्थ बाएं)। प्रत्येक क्षुद्रग्रह समान गति से चलता है।
हमारा फ़ंक्शन सभी टकरावों के बाद क्षुद्रग्रहों की स्थिति ढूंढने वाला है। यदि दो क्षुद्रग्रह मिलते हैं, तो छोटा वाला फट जाएगा। यदि दोनों समान आकार के हैं, तो दोनों फट जाएंगे। एक ही दिशा में चलने वाले दो क्षुद्रग्रह कभी नहीं मिलेंगे।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
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]