获得徽章 19
- #刷题交流# 打卡第九天
题目:39计算从位置x到y的最少步数
情况1:如果 x 和 y 相等,直接返回 0 步。
其他情况:
步骤1:初始化当前位置和当前步长
步骤2:确认方向:+1 表示向右,-1 表示向左
步骤3:增加当前位置,,在更新步长
核心代码:
while current_pos != y:
# 增加当前位置
current_pos += direction * current_step
steps += 1
# 更新步长,准备下一步
if current_step == abs(y - x):
# 如果当前步长已经等于剩余距离,下一步直接到达目标位置(步长为 1)
current_step = 1
else:
# 否则,步长变化为 -1,+0 或 +1,因为首末两步步长为 1,所以中间步长可以增加或减小
current_step += direction * (current_step != 1)展开评论5
![[看]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_97.39cdc9f.png)