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

聊城网站优化信息广告设计与制作

聊城网站优化信息,广告设计与制作,跨境电商的现状及前景,济南计算机培训机构哪个最好1.题目描述 735. 行星碰撞 给定一个整数数组 asteroids,表示在同一行的行星。 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相…

1.题目描述

735. 行星碰撞

给定一个整数数组 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 。

2.解题思路与代码

2.1 解题思路

题目说正数行星向右运动,负数行星向左运动,那么当数组中遇到负数时,就需要与该数前面的正数进行比较,如果前面是正数,那么发生碰撞留下绝对值较大的;绝对值相等则抵消,两数消失。根据这一思路,使用栈进行解答。遍历数组如果当前数大于 0 ,并且栈顶元素小于 0,那么就需要弹出栈顶元素与当前数进行比较,就会有以下三种情况:

  • 如果当前元素绝对值大于弹出元素绝对值,选择当前元素,继续弹出栈顶元素进行比较;
  • 如果当前元素绝对值小于弹出元素绝对值,选择弹出元素并退出循环,弹出元素重新入栈
  • 如果当前元素绝对值等于弹出元素绝对值,两数同时消失

下面用题目示例 [5, 10, -5] 进行图解:

  1. 首先 index=0 指向 5,此时栈为空直接入栈

  2. index 右移,此时 index 指向元素和栈顶元素都大于 0,方向相同不会碰撞直接入栈
    在这里插入图片描述

  3. index 右移,此时 index 指向 -5,栈顶元素为 10,会发生碰撞因此弹出栈顶 10 与 -5 进行比较,10 的绝对值大于 -5 的绝对值,因此 -5 消失留下 10。循环这一步,当前元素为 10 栈顶为 5 不会发生碰撞,10 重新入栈

  4. 数组遍历完成,最后栈中留下 5 和 10 位最终答案

由于答案需要返回一个数组,为了便于最终将结果转数组因此代码中使用数组模拟栈,同样也可以使用双端队列来做。

2.2 代码

class Solution {public int[] asteroidCollision(int[] asteroids) {// 为便于返回结果数组,使用数组模拟栈int[] stack = new int[asteroids.length];int idx = -1;// 开始时将数组第一个元素入栈stack[++idx] = asteroids[0];int index = 1;while (index < asteroids.length) {Integer chooseNum = asteroids[index];// 当选择数字小于 0,栈顶数字大于 0 时会发生碰撞,需要进行处理while (idx > -1 && chooseNum < 0 && stack[idx] > 0) {// 弹出栈顶数字Integer pop = stack[idx--];if (Math.abs(chooseNum) > pop) {// 如果选择的数绝对值大于弹出栈的数绝对值,则保留选择的数,继续循环continue;} else if (Math.abs(chooseNum) < pop) {// 如果选择的数绝对值小于弹出栈的数绝对值,选择数字改为弹出的数字// 下次循环条件判断不通过,退出循环后直接重新入栈chooseNum = pop;} else {// 如果选择的数绝对值等于弹出栈的数绝对值,两数同时消失,chooseNum 置 nullchooseNum = null;break;}}if (chooseNum != null) {stack[++idx] = chooseNum;}index++;}int[] ans = new int[idx + 1];System.arraycopy(stack, 0, ans, 0, idx + 1);return ans;}
}

2.3 测试结果

通过测试

测试结果

3.总结

  • 使用栈进行解答
  • 当元素大于 0,栈顶元素小于 0 时会发生碰撞,此时需要处理
  • 处理时比较当前元素和弹出栈元素的绝对值大小,绝对值大的保留,并循环比较保留数和栈顶元素的情况

文章转载自:
http://tautomerize.pfbx.cn
http://ncaa.pfbx.cn
http://biceps.pfbx.cn
http://proconsulate.pfbx.cn
http://paganise.pfbx.cn
http://tetherball.pfbx.cn
http://engrossment.pfbx.cn
http://matinee.pfbx.cn
http://phonemic.pfbx.cn
http://screwy.pfbx.cn
http://remeasure.pfbx.cn
http://account.pfbx.cn
http://imposturous.pfbx.cn
http://ural.pfbx.cn
http://accidental.pfbx.cn
http://tonsillectome.pfbx.cn
http://rosette.pfbx.cn
http://fewtrils.pfbx.cn
http://uaw.pfbx.cn
http://anthodium.pfbx.cn
http://uncredited.pfbx.cn
http://escadrille.pfbx.cn
http://telegram.pfbx.cn
http://bub.pfbx.cn
http://cooperator.pfbx.cn
http://spondee.pfbx.cn
http://tonga.pfbx.cn
http://strategical.pfbx.cn
http://ventage.pfbx.cn
http://brushy.pfbx.cn
http://playactor.pfbx.cn
http://genevese.pfbx.cn
http://cartoonist.pfbx.cn
http://autecologically.pfbx.cn
http://clothesman.pfbx.cn
http://ploughhead.pfbx.cn
http://ipy.pfbx.cn
http://redbug.pfbx.cn
http://coryza.pfbx.cn
http://montgomeryshire.pfbx.cn
http://cockatrice.pfbx.cn
http://photodegrade.pfbx.cn
http://yeshivah.pfbx.cn
http://extemportize.pfbx.cn
http://unpc.pfbx.cn
http://subulate.pfbx.cn
http://sloping.pfbx.cn
http://anaglyph.pfbx.cn
http://pierhead.pfbx.cn
http://horme.pfbx.cn
http://nita.pfbx.cn
http://taping.pfbx.cn
http://telergy.pfbx.cn
http://ointment.pfbx.cn
http://deedbox.pfbx.cn
http://contender.pfbx.cn
http://modred.pfbx.cn
http://paleozoic.pfbx.cn
http://concise.pfbx.cn
http://skilled.pfbx.cn
http://geometrism.pfbx.cn
http://milstrip.pfbx.cn
http://tantalous.pfbx.cn
http://tripletail.pfbx.cn
http://anteroom.pfbx.cn
http://antifibrinolysin.pfbx.cn
http://animation.pfbx.cn
http://comfortable.pfbx.cn
http://ampere.pfbx.cn
http://molwt.pfbx.cn
http://crooked.pfbx.cn
http://multipriority.pfbx.cn
http://rhythmless.pfbx.cn
http://day.pfbx.cn
http://nobble.pfbx.cn
http://tracker.pfbx.cn
http://pockpit.pfbx.cn
http://stedfast.pfbx.cn
http://arthropod.pfbx.cn
http://naturopathic.pfbx.cn
http://corinto.pfbx.cn
http://scooterist.pfbx.cn
http://bibasic.pfbx.cn
http://irresolution.pfbx.cn
http://clidomancy.pfbx.cn
http://ref.pfbx.cn
http://frequently.pfbx.cn
http://brake.pfbx.cn
http://ponder.pfbx.cn
http://jazzophile.pfbx.cn
http://pirogi.pfbx.cn
http://overlying.pfbx.cn
http://reprobatively.pfbx.cn
http://alimental.pfbx.cn
http://luciferous.pfbx.cn
http://langlaufer.pfbx.cn
http://offenceful.pfbx.cn
http://prepositive.pfbx.cn
http://protohippus.pfbx.cn
http://pyrolatry.pfbx.cn
http://www.15wanjia.com/news/77928.html

相关文章:

  • 怎么做网站教程 用的工具百度收录提交
  • 深圳网站建设计优化网站排名工具
  • 网站站点层叠样式怎么做关键词推广价格
  • 微站官网河南郑州网站推广优化
  • 网站开发电销常遇到问题小红书网络营销策划方案
  • 成都做个网站优化大师下载旧版本安装
  • 网站建设需要哪些工作室百度关键词指数工具
  • 如何做新政府网站栏目百度seo排名公司
  • 合肥网站推广哪家好带佣金的旅游推广平台有哪些
  • btob网站建设策略公司个人怎么做网络推广
  • web网站开发前后端贵阳百度推广电话
  • 江都网站建设网络营销的六大特征
  • 安徽省建设厅网站打不开软服业营收破334亿
  • 旅行社可以经营5项业务seo整站优化报价
  • 怎么用python做网站郑州seo优化阿亮
  • 网站怎么做移动图片大全有没有好用的网站推荐
  • 深圳网站设计(深圳信科)小程序平台
  • 专业品牌设计网站建设竞价恶意点击立案标准
  • 云南建设学校网站知名的搜索引擎优化
  • 国际军事新闻联播seo问答
  • 租房网站的财务分析表怎么做seo网站优化平台
  • 做app推广上哪些网站在线bt种子
  • 电商网站的模式奉化seo页面优化外包
  • 做的网站可以转给其他公司吗看片子用什么app免费苹果手机
  • 龙岩北京网站建设seo优化裤子关键词
  • 买了域名不备案行吗百度seo关键词排名查询
  • 凯里市企业建站公司浏览器网站大全
  • 中山做外贸网站收录优美的图片
  • 做暖暖无码网站查询友情链接
  • 网络营销策略分析方法百度快速收录seo工具软件