当前位置: 首页 > news >正文

网站建设从零开始视频教程中国新闻最新消息今天

网站建设从零开始视频教程,中国新闻最新消息今天,图书馆网站建设,免费模版网站给定一个整数数组 asteroids,表示在同一行的小行星。 对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。 找…

给定一个整数数组 asteroids,表示在同一行的小行星。

对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。

找出碰撞后剩下的所有小行星。碰撞规则:两个小行星相互碰撞,较小的小行星会爆炸。如果两颗小行星大小相同,则两颗小行星都会爆炸。两颗移动方向相同的小行星,永远不会发生碰撞。

示例 1:
输入:asteroids = [5,10,-5]
输出:[5,10]
解释:10 和 -5 碰撞后只剩下 10 。 5 和 10 永远不会发生碰撞。

示例 2:
输入:asteroids = [8,-8]
输出:[]
解释:8 和 -8 碰撞后,两者都发生爆炸。

示例 3:
输入:asteroids = [10,2,-5]
输出:[10]
解释:2 和 -5 发生碰撞后剩下 -5 。10 和 -5 发生碰撞后剩下 10 。

在这里插入图片描述

模拟栈

class Solution {
public:vector<int> asteroidCollision(vector<int>& asteroids) {vector<int> st;for(int a : asteroids){bool alive = true;while(alive && a < 0 && !st.empty() && st.back() > 0){alive = -a > st.back();if(st.back() <= -a){st.pop_back();}}if(alive){st.push_back(a);}}return st;}
};

时间复杂度:O(n),其中 n 为数组 asteroids 的大小。出入栈次数均不超过 n 次。
空间复杂度:O(1)。返回值不计入空间复杂度。

这道题的思路就是,我们遍历数组asteroids,将里面的所有元素一一与栈顶元素比对,如果遍历的元素a是负数,那么就会不断和栈中的元素进行比对,只要栈顶元素是正数且绝对值小于a,则会爆炸,也就是弹出栈,直到a遇到比自己大的反方向的行星自己爆炸或者栈顶的行星方向与自己相同,则停止while循环(因为当遇到和自己同方向的行星,说明栈中现有的行星没有反方向的),这时候如果行星没有发生爆炸,还存在,那么就将它推入栈中。

http://www.khdw.cn/news/16106.html

相关文章:

  • 菏泽网站建设兼职百度官网网址
  • 建设网站英文翻译nba最新排名榜
  • 自适应网站好吗培训网站推广
  • 网站建设财务怎么入账全球疫情最新数据
  • 做网站实现自动生成pdf百度站长平台网站收录
  • 做婚恋交友类网站做百度推广销售怎么找客户
  • 海口企业网站建设制作哪家专业一键制作单页网站
  • 网站备案名称更改重庆seo排名方法
  • phpstudy怎样做多个网站游戏推广对接平台
  • 双公示 网站专栏建设产品推广计划怎么写
  • 北京装修公司排名电话公众号seo排名软件
  • 科技设计网站建设seo专家是什么意思
  • 电脑做会计从业题目用什么网站seo百度seo排名优化软件
  • 网站pr怎么提升新闻热点最新事件
  • 中国庆阳网百度seo培训课程
  • 钱多网站培训机构查询网
  • 用.aspx做网站百度点击器找名风软件
  • 企业网站用户群百度下载免费安装最新版
  • 贵阳论坛网站建设seo整体优化
  • 江苏润祥建设集团网站手机怎么做网站
  • wordpress免费导航主题上海seo优化外包公司
  • 标书制作员这工作好吗哪个杭州seo好
  • 男女做暧暧视频免费网站搜狗竞价推广效果怎么样
  • 淘宝店网站怎么做广州白云区最新信息
  • 郴州 网站建设win7优化大师好不好
  • 哈尔滨市工程信息网郑州seo优化推广
  • 礼品网站设计上海最近三天的新闻
  • 网站制作多少钱资讯怎么在百度上发帖推广
  • 兰州做网站东莞新闻最新消息今天
  • 泉州网站关键词推广费用凡科小程序