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

南昌做网站流程网站做字工具

南昌做网站流程,网站做字工具,google怎么做网站推广,网页模板网站给定一个整数数组 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.yayakq.cn/news/874759/

相关文章:

  • 免费建设网站抽取佣金长春网站制作网页
  • 黄冈网站建设流程腾讯云建立wordpress
  • 一般做网站费用上海做网站公司做网站的公司
  • 网站制作网址建公司网站需要自己有系统吗
  • 网站推广工作如何做宝坻做网站
  • 服务器搭建网站步骤视频山东临沂网站建设
  • 网站诊断方法电子商务网站建设期末作业
  • 上海营销型网站建设哪家好唐山网站排名提升
  • 建设网站需要的材料知乎问答网站开发教程
  • 盗用别人网站图做网站凌云县 城市建设 网站
  • 带后台的手机网站源码建设网站公司哪儿济南兴田德润有活动吗
  • 物流网站给做软件下载郑州商城网站建设多少钱
  • 搭建本地网站做色流dz论坛中英文网站怎么做
  • 织梦网站背景音乐中国万网网站建设过程
  • 做一个自己的网站国内php开发的网站建设
  • 网站域名的作用什么网站可以免费做视频软件
  • 设立网站 费用什么做网站开发
  • 做视频网站的挣钱吗微网站如何做微信支付宝支付宝支付接口
  • 1.网站开发的详细流程可信网站认证有什么用
  • 秦皇岛建设厅网站用php做网站的书籍
  • 黑白摄影网站弄一个关于作文的网站怎么做
  • 宁波网站建设活动网址格式
  • 腾讯云阻止网站访问连云港市建设银行网站
  • 如何提高网站的权重苏州淘宝运营培训
  • 滨海做网站哪家公司好做网站需要哪些准备
  • 徐州市云龙区建设局网站用wordpress做企业网站
  • 诚信网站建设的意义合肥知名网站建设公司
  • 支持ipv6网站开发打开英文网站字体不对
  • 校园网站建设服务app推广拉新一手渠道
  • 如何查网站域名备案信息成华区微信网站建设公