#刷题交流# 第17天:石子移动问题
分析
小S的石子移动游戏可以分解为以下步骤:
1. 定义端点石子:最左端和最右端的石子称为端点石子。
2. 操作目标:将石子移动到其他未占用的位置,使得所有石子的位置变得连续。
3. 计算最大移动次数:
○ 为了达到最大移动次数,可以将端点石子移动到尽可能远的位置,使得每次移动后仍然有一个端点石子,直到石子的位置变得连续。
思路
1. 单石子处理:if len(stones) <= 1,若只有一个石子,则直接返回 0。
2. 排序:首先对石子位置的数组 stones 进行排序,这样便于计算石子的位置间隔。
3. 计算两端的间隔:考虑从左端或右端开始逐步移动端点石子,直到所有石子的位置变得连续。
4. 最大移动次数:通过计算从左端到右端的间隔,以及移出端点石子所需的步数,得到最大可能的移动次数。
17天,今日冬至!加油⛽️