第一版,没有想到相向移动不会被撞

class Solution {public:vector<int> asteroidCollision(vector<int>& asteroids) {vector<int> ret;if(asteroids.empty())return ret;// ret.push_back(asteroids[0]);for(auto & i : asteroids){bool add = true;while(!ret.empty() && ret.back()*i < 0){if(abs(ret.back()) == abs(i)){ret.pop_back();add = false;break;//两败俱伤}else if(abs(ret.back()) < abs(i)){ret.pop_back();continue;//i还可以继续撞}else if(abs(ret.back()) > abs(i)){add = false;break;}}if(add)ret.push_back(i);}return ret;}
};

第二版,其实第一版大体思路没错,就是只有第一个向右,第二个向左这种情况会发生碰撞,其他都不会,要注意到这一点。

class Solution {public:vector<int> asteroidCollision(vector<int>& asteroids) {vector<int> ret;if(asteroids.empty())return ret;for(auto &i:asteroids){// if(ret.empty() || (ret.back() < 0 && i > 0) || (ret.back()*i > 0)){//     ret.push_back(i);// }bool add = true;while(!ret.empty() && ret.back() > 0 && i < 0){if(abs(ret.back()) > abs(i)){add = false;break;}else if(abs(ret.back()) == abs(i)){add = false;ret.pop_back();break;}else if(abs(ret.back()) < abs(i)){ret.pop_back();continue;}}if(add)ret.push_back(i);}return ret;}
};

2022-4-7 Leetcode 735.行星碰撞相关推荐

  1. Java实现 LeetCode 735 行星碰撞(栈)

    735. 行星碰撞 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动).每一颗行星以相 ...

  2. LeetCode 735. 行星碰撞(栈)

    1. 题目 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动).每一颗行星以相同的速度 ...

  3. Leetcode 735. 行星碰撞

    基本思路: 很简单.首先来一个辅助数组,最好是用栈,但是返回的结果不是数组么.所以直接用数组吧.      然后这么考虑: 从左往右遍历输入的数组,每遍历到一个值,若它能和辅助数组的最右边的行星发生碰 ...

  4. 【LeetCode】735. 行星碰撞

    题目 735. 行星碰撞 难度中等342收藏分享切换为英文接收动态反馈 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方 ...

  5. 【735. 行星碰撞】

    来源:力扣(LeetCode) 描述: 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移 ...

  6. Leetcode刷题记录 735. 行星碰撞

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

  7. 【每日一算法】行星碰撞

    微信改版,加星标不迷路! 每日一算法-行星碰撞 给定一个整数数组 asteroids,表示在同一行的行星. 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表 ...

  8. JAVA基础算法练习(5):行星碰撞

     ------文章底部代码分享 一.题目 标题:行星碰撞 给定一个整数数组 asteroids,表示在同一行的行星.对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移 ...

  9. LeetCode.735 Asteriod Collision

    题目: We are given an array asteroids of integers representing asteroids in a row. For each asteroid, ...

最新文章

  1. iOS中关于NSTimer使用知多少
  2. Web 服务器-Apache详解
  3. 约瑟夫环之循环链表实现
  4. CentOS下安装JDK7 转载
  5. 比特币拒绝第 340 次“被死亡”
  6. mysql从多个表查询数据类型_MySQL 之 多表查询
  7. 扩展指令集--指令参考说明
  8. ros开发语言python效率_Python 的开发效率真的比 Java高吗?
  9. 22Exchange Server 2010跨站点部署-邮件流测试及重定向
  10. Exchange企业实战技巧(18)日志规则应用之审计邮箱
  11. PyCharm中,如何成功 import caffe?
  12. java servlet大学生旅游网站的设计与开发源码
  13. ORCAD生成BOM单时不显示元器件封装
  14. 删除Windows中设备与驱动器下的多余图标
  15. 看aps高级排产如何实现生产计划智能排产
  16. 生产计划排产计划的模式有哪几种?
  17. 大数据练习环境部署(3) - Hadoop集群部署
  18. mk突变点检测_MK检验突变分析 matlab
  19. 启用数据空间:让VirtualBox虚拟机中的Ubuntu 10.10和XP主机互通有无
  20. Linux 内核/sys 文件系统介绍

热门文章

  1. 精益敏捷企业的七大核心能力和实施路线图
  2. “视频号”能撑起微博的野心吗?
  3. Regression testing minimization, selection and prioritization: a survey
  4. Mastercam2022程序单升级版
  5. HTML5 video标签禁止下载
  6. 高新技术企业科技成果转化解读!
  7. 《数据库系统原理》实验5:表数据的维护
  8. SAP 详细解析成本核算步骤
  9. 桁架机器人运动视频_空间桁架爬行机器人运动特性研究
  10. signal 6 (SIGABRT), code -6 (SI_TKILL) Abort message: ‘stack corruption detected (-fstack-protector