首页 > 其他分享 >1033. 移动石子直到连续

1033. 移动石子直到连续

时间:2023-04-30 15:11:44浏览次数:58  
标签:石子 int res 位置 1033 移动 Math

1033. 移动石子直到连续

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

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

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

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

示例 1:

输入:a = 1, b = 2, c = 5
输出:[1, 2]
解释:将石子从 5 移动到 4 再移动到 3,或者我们可以直接将石子移动到 3。

示例 2:

输入:a = 4, b = 3, c = 2
输出:[0, 0]
解释:我们无法进行任何移动。

提示:

  1. 1 <= a <= 100
  2. 1 <= b <= 100
  3. 1 <= c <= 100
  4. a != b, b != c, c != a

方法:

class Solution {
    public int[] numMovesStones(int a, int b, int c) {
        // 由小到大依次是: x , y , z
        int x = Math.min(Math.min(a, b), c);
        int z = Math.max(Math.max(a, b), c);
        int y = a + b + c - x - z;
        
        int[] res = new int[2];
        // 最小移动次数与x,y,z三者大小有关
        res[0] = 2;
        // 无法移动,最大最小移动次数都为0
        if (z - y == 1 && y - x == 1) {
            res[0] = 0;
        // 移动一次后即无法移动
        } else if (z - y <= 2 || y - x <= 2) {
            res[0] = 1;
        }
        // 最大移动次数为z-x-2;
        res[1] = z - x - 2;
        return res;
    }
}

 

标签:石子,int,res,位置,1033,移动,Math
From: https://www.cnblogs.com/fulaien/p/17365300.html

相关文章

  • 【移动端网页布局】移动端网页布局基础概念 ⑤ ( 视网膜屏技术 | 二倍图概念 | 代码示
    文章目录一、视网膜屏技术二、二倍图概念三、代码示例一、视网膜屏技术PC端和早期的移动端网页中,CSS中配置的1像素对应的就是物理屏幕中的1像素;Retina视网膜屏幕技术出现后,将多个物理像素压缩到一块屏幕中,可以达到更高的分辨率,画面显示效果更好;下......
  • 联想移动被卖 消费者和国产手机阵营很受伤
    经历2003年的短暂辉煌后,在四面楚歌声中,国产手机巨头开始集体大溃败.夏新、波导、熊猫、南方高科……一个个曾经的国产手机巨头,在洋品牌“坚船利炮”的进攻下,要么“出身未捷身先死”,要么身负重伤,苟延残喘,要么及时抽身,另寻他路.巨头们的惨淡经营给国产阵营蒙上了一层绝望阴......
  • 使用jquery探测移动设备 How to detect mobile devices using jQuery
     Helloeveryone,yesterdayIreceivedarequestfromtheclient.HewantedtodisablethepopupofNewsletterPopupextensionwhencustomersvisithiswebsiteonmobiledevices.ItgavemeachancetoworkwithjQueryagainandfinallyIcameupwitha......
  • selenium笔记之PC浏览器仿真移动端
    本来写的UI走查的代码主要场景是web浏览器,少量h5页面校验不值得大费周章用真机去跑背景:首先尝试了移动端真机巡检,但是不同机型,需要调试出合适的appPackage以及其它参数上一段代码:publicAndroidDrivergetWebDriverForAPP(){AndroidDriverappDriver=null;......
  • 记录-Vue移动端日历设计与实现
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助工作中遇到一个需求是根据日历查看某一天/某一周/某一月的睡眠报告,但是找了好多日历组件都不是很符合需求,只好自己手写一个日历组件,顺便记录一下。先看看UI给的设计图和,需求是有数据的日期做标记,可以查看某一周/......
  • 【Unity】高级——有限状态机(角色控制)移动、待机
    简介有限状态机是unity游戏开发中经常用到的一个概念,能制作敌人AI,玩家控制器等。有限状态机允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类实现:将一个个具体的状态类抽象出来经典案例:玩家行动器案例中玩家行动包括:待机、移动、跳跃、冲刺、爬墙等而这......
  • 记录-因为写不出拖拽移动效果,我恶补了一下Dom中的各种距离
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助背景最近在项目中要实现一个拖拽头像的移动效果,一直对JSDom拖拽这一块不太熟悉,甚至在网上找一个示例,都看得云里雾里的,发现遇到最大的拦路虎就是JSDom各种各样的距离,让人头晕眼花,看到一个距离属性,大脑中的印象极......
  • 移动办公APP/小程序开发功能
    移动办公APP/小程序是一种面向企业内部员工和管理人员的移动应用程序,提供企业内部办公和管理服务。以下是一些常见的移动办公APP/小程序功能:企业通讯录:提供企业内部员工名单和联系方式,方便员工之间沟通和联系。日程管理:提供个人和团队日程管理功能,包括会议安排、任务分配、......
  • 解决vue移动端 ios页面切换出现闪屏现象(可直接复制张贴)
    在App.vue文件中监听路由//控制左右滑动 watch:{  $route(to,from){   constarr=[    '/warningCenter/warningCenterHome',    '/equInspection/equInspectionHome',    '/ourOrder/ourOrderHome',    '/orderC......
  • vue移动端使用(pdfh5) 组件预览PDF
    1、安装插件npmipdfh52、在页面内引入组件importPdfh5from"pdfh5";import"pdfh5/css/pdfh5.css";3、写一个展示pdf文件的容器  <divid="pdfType"></div>4、封装在事件中 initPdf(){      this.pdfh5=''      this.pdfh......