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

南通的电商网站建设营销

南通的电商网站建设,营销,石家庄住房建设厅网站,政府网站建设先进经验交流材料移动石子直到连续【LC1033】 三枚石子放置在数轴上,位置分别为 a,b,c。 每一回合,你可以从两端之一拿起一枚石子(位置最大或最小),并将其放入两端之间的任一空闲位置。形式上,假设这…

移动石子直到连续【LC1033】

三枚石子放置在数轴上,位置分别为 abc

每一回合,你可以从两端之一拿起一枚石子(位置最大或最小),并将其放入两端之间的任一空闲位置。形式上,假设这三枚石子当前分别位于位置 x, y, zx < y < z。那么就可以从位置 x 或者是位置 z 拿起一枚石子,并将该石子移动到某一整数位置 k 处,其中 x < k < zk != y

当你无法进行任何移动时,即,这些石子的位置连续时,游戏结束。

要使游戏结束,你可以执行的最小和最大移动次数分别是多少? 以长度为 2 的数组形式返回答案:answer = [minimum_moves, maximum_moves]

要赶紧回归学习状态

  • 思路

    排序后分类讨论

    • 最大移动次数【贪心】

      每次向中间十字移动一格,使移动次数最大

    • 最小移动次数【分情况讨论】

      由于可以移动至任意位置,因此最小次数最多为2

      • 如果三颗石子已经连续,那么不需要移动
      • 如果三颗石子两颗连续 ,那么只需移动1次
      • 如果两颗石子距离为1,那么只需移动1次
      • 否则,移动2次
  • 实现

    class Solution {public int[] numMovesStones(int a, int b, int c) {int[] stones = {a, b, c};Arrays.sort(stones);int[] res = new int[2];res[1] = stones[2] - stones[0] - 2;// 最大// 最小// 已经连续 0次// 两颗连续 1次// 两颗相邻为1 1次// 否则 移动2次if(stones[2] - stones[0] == 2){res[0] = 0;}else if (stones[2] - stones[1] <= 2 || stones[1] - stones[0] <= 2){res[0] = 1;}else {res[0] = 2;}return res;}}
    
    • 复杂度
      • 时间复杂度: O ( 1 ) O(1) O(1)
      • 空间复杂度: O ( 1 ) O(1) O(1)
http://www.ds6.com.cn/news/73261.html

相关文章:

  • 怎么利用360域名做网站合肥网络公司seo建站
  • 郑州网站排名优化快速排名seo软件
  • 网站当前日期代码网店代运营靠谱吗
  • 西安市长安区规划建设局网站vi设计
  • 网站交换链接怎么做宁波正规站内优化seo
  • 凡科的模板做网站巨量引擎广告投放平台官网
  • 社交网站cms优化网站推广教程排名
  • 云定制网站免费职业技能培训网站
  • 家庭网络组建方案自贡网站seo
  • 黑icp 网站建设竞价推广账户竞价托管公司
  • 网络架构1788aso优化什么意思
  • 共享ip做网站不能搜的超级恶心的关键词
  • 做二手房销售要开自己的网站吗网站赚钱
  • 网站建设技术网站建设企业推广方案
  • 高端建设网站公司写一篇推广商品的软文
  • 重庆制作网站有哪些武汉好的seo优化网
  • 夺宝网站建设产品宣传推广策划
  • 网站建设的主题哈尔滨百度推广联系人
  • 做信息网站能挣钱吗seo优化包括
  • 个人网站名称请专业的网页制作公司
  • 网站建设模板坏处海南百度推广总代理商
  • 怎么做扫二维码登陆网站企业网站seo排名优化
  • 学做宝宝衣服网站好推广平台都有哪些
  • 沐雪专业网站建设百度网盘账号登录入口
  • web程序员自己做网站58同城网站推广
  • 做网站seo优化总结百度引流推广怎么收费
  • 广西南宁房产网站建设seo公司后付费
  • 甘肃省环保建设申报网站惠州seo排名收费
  • 获取网站访问者qq号软文广告经典案例600
  • 网站建设需注意点东莞网站建设最牛