Asteroid Collision LeetCode solution in Rust

1
impl Solution {
2
pub fn asteroid_collision(asteroids: Vec<i32>) -> Vec<i32> {
3
let mut stack: Vec<i32> = Vec::new();
4
for element in asteroids {
5
let mut flag: i32 = 1;
6
while !(stack.is_empty()) {
7
let curr_asteroid: i32 = stack.pop().unwrap();
8
if curr_asteroid * element < 0 && curr_asteroid.abs() > element.abs() && element < 0 {
9
flag = 0;
10
stack.push(curr_asteroid);
11
break;
12
} else if curr_asteroid * element < 0 && curr_asteroid.abs() == element.abs() && element < 0
13
{
14
flag = 0;
15
break;
16
}
17
if curr_asteroid * element > 0 || (curr_asteroid * element < 0 && element > 0) {
18
stack.push(curr_asteroid);
19
break;
20
}
21
}
22
if flag == 1 {
23
stack.push(element);
24
}
25
}
26
stack
27
}
28
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0