首页 > 其他分享 >2024-04-19---中等题---移动石子直到连续(贪心)

2024-04-19---中等题---移动石子直到连续(贪心)

时间:2024-04-19 21:11:38浏览次数:19  
标签:04 19 石子 --- int 移动 Math 贪心

移动石子直到连续(贪心)

题目:

image

思路:

这道题是有小技巧的,和一些棋盘题有些类似。利用贪心的极致选择,可以直接把情况划分完。

  • 最少的移动次数:
    • 当三个石子连续放置的时候,最小移动次数为0.
    • 当三个石子中只要有两个石子的距离小于2,即可只需移动另外一个石子1次完成。
    • 其他情况都是最小2次。左右直接贴中间,所以两次。
  • 最多的移动次数:
    • 每次规定只能移动一个格子,即为最多。所以z-x-2次。(其实就是(z-y-1)+(y-x-1))。

代码:

class Solution {
    public int[] numMovesStones(int a, int b, int c) {
        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];
        res[0] = 2;
        if (z - y == 1 && y - x == 1) {
            res[0] = 0;
        } else if (z - y <= 2 || y - x <= 2) {
            res[0] = 1;
        }
        res[1] = z - x - 2;
        return res; 
    }
}

标签:04,19,石子,---,int,移动,Math,贪心
From: https://www.cnblogs.com/leleChang/p/18146781

相关文章

  • 2024.04.19每日收获之链表与逻辑操作
    今日处理工作时遇到了一个问题,操作非连发按键时也会唤醒机器,但不会有连发动作,查看代码了解到也是历史遗留问题。它采用掩码形式,将多个按键键值或运算到一起,最后在与收到的按键值与运算来查看该按键是否可以连发,这样有一个弊端,即多个按键的按键值占用多个位,会导致非连发按键的键值......
  • P9745 「KDOI-06-S」树上异或
    P9745「KDOI-06-S」树上异或位运算trick+树形dp看到题目中贡献的计算,可以想到乘法分配律,也就是一个连通块的乘积可以直接乘在当前所有方案的权值之和上。可以考虑特殊性质:链。那么树的问题就变成了序列问题。容易设\(f_i\)表示\(i\)以前的节点的所有断边方案权值和。转移......
  • Ubuntu 22.04 和 Windows 时间冲突解决方案
    默认情况下,Ubuntu(和大多数其他Linux发行版)假设硬件时钟设置为协调世界时间(UTC+0),而Windows则假设硬件时钟设置为当地时间,这导致Ubuntu快8小时。这种差异会导致你在双启动系统中切换操作系统时,经常遇到时间显示不正确的问题。要解决这个问题,有两种常用方法,要么让Linux......
  • 2024.4.19
    2024.4.19【你知道的都是真相。只可惜那些并不是真相的全部。】Friday三月十一谷雨<BGM="谷雨--音阙诗听">AC:AnswerCoarse,粗劣的答案​CE:CompileEasily,轻松通过​PC:PerfectCompile完美的编译​WA:WonderfulAnswer,好答案​RE:RunExcellently,完......
  • Ubuntu 22.04 安装 Nvidia 驱动最方便安全的方式
    刚安装好的Ubuntu22.04没有N卡驱动,输入nvidia-smi,提示没有此程序并推荐到apt安装。但是,使用apt安装nvidia驱动会有极大概率出现启动黑屏和闪屏问题。不如进入开始菜单,找到“附加驱动”:此处展示了可用的Nvidia驱动,选择自己想要的版本安装,"tested"表明其经过测试,......
  • WebShell管理工具的流量特征-哥斯拉 v4.01
    一、哥斯拉v4.01PHP_EVAL_XOR_BASE64:1.WebShell连接通讯流量分析本次案例以哥斯拉v4.01连接PHP_EVAL_XOR_BASE64-WebShell木马的通讯过程为例哥斯拉v4.01主界面如下:有效载荷支持:Asp、Java、CS、Php默认加密方式有:PHP_EVAL_XOR_BASE64、PHP_XOR_BASE64、PHP_XOR_RAW我们......
  • ZCMU-1110
    思路:-首先可以知道最少动就是从三个角对称的划分因为不是对称划分则会出现破坏了正三角,后面还要重新对好之后就可以进行推导(按三角形我没看懂)其中设底上截出来的三角形的底为i,则上面就是n-2*i-1;所以动的数就可以算出来:[6*i^2+(4-4n)i+(n*n-n)]/2;最小就是i=(......
  • python --二分法学习
    deffound_number(need_vaule,l):print(l)mid_index=len(l)//2mid_value=l[mid_index]print("mid_valueis%s"%(mid_value))ifmid_value>need_vaule:l=l[:mid_index]print('needtofind1')......
  • 实验一原型设计-汽水音乐app
    一、对比墨刀、Axure、Mockplus等原型设计工具的各自的适用领域及优缺点墨刀• 适用领域:主要专注于app原型设计,适合高保真原型、复杂多交互项目以及安卓/ios端项目。• 优点:操作效率高,易于上手,特别适合设计移动应用的交互原型。• 缺点:在后台和网页设计方面稍显乏力,归档能力......
  • SciTech-BigDataAIML-Adam动量自适应的梯度快速收敛
    http://faculty.bicmr.pku.edu.cn/~wenzw/optbook/pages/stograd/Adam.html版权声明此页面为《最优化:建模、算法与理论》、《最优化计算方法》配套代码。代码作者:文再文、刘浩洋、户将,代码整理与页面制作:杨昊桐。Adam算法考虑优化问题:minx∈Rnf(x)=1N∑i=1Nfi(x).Adam算......