笔试坐标轴移动问题

这是一道关于在一维坐标轴上移动的问题,要求从原点出发,根据每次必须移动i的距离,找到到达给定坐标s的最少移动次数。解题关键是分析不同情况:当s的绝对值等于或小于某个连续移动序列的总距离时,如何通过调整移动方向来最小化移动次数。
摘要由CSDN通过智能技术生成

题目

    给定一个一维坐标轴,从正无穷到负无穷。假如你现在位于坐标O上,你每次可以向左或者向右移动,但有一个条件,那就是第i次移动时,移动的距离必须是i。请计算至少需要移动几次能到达给定的坐标s。
    例:当x是3时,需要两步,第一步右移1,第二步右移2。 当x是4时,需要三步,第一步左移1,第二步右移2,第三步右移3。

思路

    此题主要是一种思想。
    最快的一定是全部左移或右移到达终点例如数字3。若无法全部左移到达终点,则需要某一步或两步往相反方向移动。
    假设坐标s是为非负数(即便是负数也可以将到达相反数的操作全部反向),连续i次右移到达 c o u n t = i ( i + 1 ) 2 count=\frac{i(i+1)}{2} count=2i(i+1)格。
    本题主要有以下几种情况:

  • ∣ s ∣ = i ( i + 1 ) 2 |s| = \frac{i(i+1)}{2} s=2i(i+1)         移动i
  • ∣ s ∣ > i ( i + 1 ) 2 |s| > \frac{i(i+1)}{2} s
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值