MCPcopy Create free account
hub / github.com/codedecks-in/LeetCode-Solutions / asteroidCollision

Method asteroidCollision

C++/asteroid-collision.cpp:3–56  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1class Solution {
2public:
3 vector<int> asteroidCollision(vector<int>& asteroids) {
4 stack<int> s;
5
6 for(int i=0;i<asteroids.size();i++)
7 {
8 if(s.empty() or asteroids[i]>0)
9 {
10 s.push(asteroids[i]);
11 }
12 else
13 {
14 while(true)
15 {
16 int top = s.top();
17
18 if(top<0)
19 {
20 s.push(asteroids[i]);
21 break;
22 }
23 else if(top==-asteroids[i])
24 {
25 s.pop();
26 break;
27 }
28 else if(top>(-asteroids[i]))
29 {
30 break;
31 }
32 else
33 {
34 s.pop();
35 if(s.empty())
36 {
37 s.push(asteroids[i]);
38 break;
39 }
40 }
41 }
42 }
43 }
44
45 vector<int> output(s.size(),0);
46
47 for(int i=s.size()-1;i>=0;i--)
48 {
49 output[i]=s.top();
50 s.pop();
51 }
52
53 return output;
54
55
56}
57};

Callers

nothing calls this directly

Calls 2

pushMethod · 0.80
popMethod · 0.80

Tested by

no test coverage detected