public static void main(String[] args) {
int[] asteroids=new int[]{-2,-2,2,-1};
Stack<Integer> stack=new Stack<>();
for(int star:asteroids){
collision:{
// 右侧的行星==>负数 栈顶元素==>正数
while(!stack.isEmpty() && star<0 && stack.peek()>0){
int top = stack.peek();
// 如果右侧的行星大 则 栈顶元素毁灭
if(top<-star){
stack.pop();
// 加上continue可以继续while循环
// 不加continue会走到break collision,跳出整个collision块
continue;
}
// 如果 两者相等 则 一起毁灭
else if(top==-star){
stack.pop();
}
// 如果左侧的行星大 则 跳出循环,collision代码块结束 => 自我毁灭吧
break collision;
}
stack.push(star);
}
}
}