Asteroid Collision LeetCode solution in C++
1class Solution {2public:3vector<int> asteroidCollision(vector<int> &asteroids) {4vector<int> v;5stack<int> s;67for (auto x : asteroids) {8if (x > 0)9s.push(x);1011else {12// Case 1: whem top is less than x1314while (s.size() > 0 && s.top() > 0 && s.top() < -x) {15s.pop();16}1718// case 2 : when both of same size19if (s.size() > 0 && s.top() == -x) {20s.pop();21}2223// case 3: when top is greater2425else if (s.size() > 0 && s.top() > -x) {26// do nothing27}2829// case 4: when same direction3031else {32s.push(x);33}34}35}3637while (!s.empty()) {38v.push_back(s.top());39s.pop();40}4142reverse(v.begin(), v.end());4344return v;45}46};