gpt4 book ai didi

algorithm - 将一系列旋转表盘设置为给定序列的最少步骤

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:50:29 25 4
gpt4 key购买 nike

所以我有以下问题:有 n 个旋转刻度盘,每个刻度盘都设置为 0-9 之间的某个数字,它们需要与另一系列的 n 个数字(也在 0-9 之间)相匹配。

旋转一步是将任意数量的连续刻度盘向上或向下旋转一步。表盘环绕 9。即从 9 向上旋转一级给出 0,反之亦然。

我需要找到使初始配置与给定配置相匹配的最少步骤数。

例如:Initial -> 154 Given -> 562

1. 先动先 2 拨 1 154 -> 264->1 step
2. 将第一个拨盘向上移动 3 264->564 ->3 步
3. 将第 3 个拨盘 2 向下移动 564->562 ->2 步
所以最小步数是 6
我不需要代码,只需要对方法的一些见解。

最佳答案

我不确定我是否正确理解了这个问题。似乎如果将两个数字一起旋转 1 步,则该移动仅计为一次移动,而不是两次,对吗?

在那种情况下,为什么不计算每个数字与其在其他系列中的匹配项之间的最小距离。之后将减号和加号组合在一起,并尽可能将数字一起移动。

例如:

145 -> 632

  • 1 的最小距离为 5+-(向上或向下)
  • 4 的最小距离为 1-
  • 5 的最小距离为 3-

由于只有负步数,我会将 5 也算作负步数,然后执行以下操作:

  1. 将所有数字向下移动一位 -> 034
  2. 将第一个和最后一个数字向下移动两步 -> 832
  3. 将最后一个数字向下移动两步 -> 632= 总共 5 个步骤

关于algorithm - 将一系列旋转表盘设置为给定序列的最少步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51552605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com