​力扣解法汇总1033. 移动石子直到连续

news/2025/2/22 20:09:17/

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

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

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

解题思路:

* 解题思路:
* 按照从小到大,排列a,b,c。
* 首先abc如果相邻,则直接返回0;
* 其次求minimum_moves,如果a,b,c两者相邻或者间隔为1,则minimum_moves=1,否则minimum_moves=2;
* 最后求最大值,因为每次挪动的都是最外侧的,所以其实b的位置就不重要了。
* maximum_moves = c-a-1-1,第一个1代表跳过b的位置,第二个1代表距离a相差1。

代码:

public class Solution1033 {public int[] numMovesStones(int a, int b, int c) {int[] ints = {a, b, c};Arrays.sort(ints);a = ints[0];b = ints[1];c = ints[2];if (c - b == 1 && b - a == 1) {return new int[]{0, 0};}int minimum_moves;if (Math.abs(a - b) == 1 || Math.abs(a - b) == 2 || Math.abs(c - b) == 1 || Math.abs(c - b) == 2) {minimum_moves = 1;} else {minimum_moves = 2;}int maximum_moves = (c - a - 1) - 1;return new int[]{minimum_moves, maximum_moves};}}


http://www.ppmy.cn/news/61328.html

相关文章

2. C++常量const

一、const含义 类型修饰符const是指常类型 常类型的变量或对象的值不可以被更新&#xff0c;因此const对象创建时必须要初始化 const对象是编译期概念&#xff0c;编译器在编译过程中将用到该变量的地方都替换成相应的值 二、const作用 可以定义常量&#xff1a;const in …

【Java】Java对象的比较

Java对象的比较 PriorityQueue中插入对象元素的比较基本数据类型的比较对象的比较重写基类的equals方法基于Comparble接口类的比较基于比较器进行比较 PriorityQueue中插入对象 优先级队列在插入元素时有个要求&#xff1a;插入的元素不能是null或者元素之间必须要能够进行比较…

自动驾驶行业观察之2023上海车展-----车企发展趋势(1)

新势力发展趋势 小鹏汽车&#xff1a;发布新车G6&#xff08;中型SUV&#xff09;&#xff0c;将于2023年年中上市 发布新车G6&#xff1a;车展上&#xff0c;小鹏G6正式首发亮相&#xff0c;定位中型SUV&#xff0c;对标Tesla Model Y&#xff0c;将于2023年年中上市并开始交…

密码学:公钥密码.(非对称密码)

密码学&#xff1a;公钥密码. 公钥密码 (Public Key Cryptography)&#xff0c;又称为非对称密码&#xff0c;其最大特征是加密和解密不再使用相同的密钥&#xff0c;而使用不同的密钥。使用者会将一个密钥公开&#xff0c;而将另一个密钥私人持有&#xff0c;这时这两个密钥被…

python 实现模糊聚类

python模糊聚类细节与实现 前言数学逻辑代码框架Python实现数据预处理 preProcess获得相似矩阵 getSimilarityMatrix获取传递闭包 transitiveClosure模糊运算 fuzzMatrixProduct实现聚类 mergeProcess 实例演示完整代码代码细节 前言 作为数学系的学生&#xff0c;我对于模糊数…

抖音营销策略:新手如何利用抖音提高品牌曝光度

随着短规频平台的兴起&#xff0c;抖音作为其中的校佼者&#xff0c;已经成为了众多用户和企业的营销利器。但是&#xff0c;对于抖音新手而言&#xff0c;如何在这个平台上快速提升影响力呢?下面不若与众就为大家分享几个实用的方法。 一、关注抖音热门话题和潮流 抖音平台上…

【GAMES101】03 Transformation

2D线性变换 ——写成矩阵形式 1、Scale&#xff08;缩放&#xff09; 2、Reflection Matrix&#xff08;反射矩阵&#xff09; 3、Shear Matrix&#xff08;剪切矩阵&#xff09; 4、Rotation Matrix&#xff08;旋转矩阵&#xff09; 推导过程&#xff1a; 5、Translation Ma…

汇编语言学习笔记五

div指令 除法&#xff0c; 被除数&#xff1a;默认是放在ax或者dx中&#xff0c;其位数为16位&#xff0c;则在ax中&#xff0c;如位数为32位&#xff0c;则高位在dx中&#xff0c;低位在ax中 除数&#xff1a;放在寄存器或者内存单元中&#xff0c;有8位和16位两种。 结果&am…