vector的基本操作:
vector<int >v; v.back();//获取尾部数据 v.front();//获取首部数据 v.push_back(3);//在尾部加入数据3 v.pop_back();//弹出尾部数据
首先只有前一个行星向右走,后一个行星向左走才可能相撞。也就是一正一负的组合
使用一个变量aliva记录当前行星是否会被销毁,注意这种情况先是枚举各个行星;
for(auto aster:asteroids){ int alive=true;//记录每个行星开始是存活的 while(alive&&!v.empty&&aster<0&&v.back()>0){//v是撞击后还存活的行星 alive=-aster>v.back(); if(-aster>=v.back()){ v,pop_back();//v中的最后一个行星都需要被销毁 } if(alive)v.push_back(aster); //还存活放入v中 } }
标签:碰撞,aster,back,alive,存活,vector,行星,leetcode735 From: https://www.cnblogs.com/wangkaixin-yy/p/17483399.html