每日leetcode第0007天 0735. Asteroid Collision

这是一道栈的题目,但由于信奥的输出方式最后还要将栈颠倒后输出。

我们先需要将第一颗星放入栈中。接下来开始循环读数据。

基本情况有四种:

栈顶负,数据负。

栈顶负,数据正。

栈顶正,数据正。

栈顶正,数据负。

前三种情况只需要压入数据进栈即可。

只有当第四种情况发生时,出现碰撞。

出现了碰撞,我们就要比较行星的质量。

若栈顶大,则无事发生;

若栈顶和数据相等,则需要弹出栈顶;

若栈顶小,则需要弹出栈顶,并进行小循环让数据和新的栈顶进行比较。

但每次进入小循环之前,需要确定栈内是否还有元素,没元素就不用比了,将数据压入。



关于樊轶群

一个善良的理想主义者。
此条目发表在每日LeetCode分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。