• Leetcode 754. 到达终点数字


    在一根无限长的数轴上,你站在0的位置。终点在target的位置。

    你可以做一些数量的移动 numMoves :

    • 每次你可以选择向左或向右移动。
    • 第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。

    给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves ) 。

    示例 1:

    输入: target = 2
    输出: 3
    解释:
    第一次移动,从 0 到 1 。
    第二次移动,从 1 到 -1 。
    第三次移动,从 -1 到 2 。

    示例 2:

    输入: target = 3
    输出: 2
    解释:
    第一次移动,从 0 到 1 。
    第二次移动,从 1 到 3 。

    提示:

    • -10^9 <= target <= 10^9
    • target != 0

    我的想法:

    1. target 是正的负的无所谓,为了方便就把负的转换为正的。
    2. 从 1 开始循环累加,当累加的值大于等于 target 值的时候退出循环。
    3. 累加的值减去前一个累加的值,这样累加的值就小于 target 值了。用 target 值减累加的值,得出的差乘上 2 。乘 2 的原因是:- 1 + 2 = 1,- 2 + 3 = 1,… 得出的那个差是可以用一前一后一负一正来累加。如果差为 2,就需要四个值来累加得出。

    然后按着这个想法写了个,没过。原因是这个最后累加的次数不是题目中要求的最小次数。

    class Solution:
        def reachNumber(self, target: int) -> int:
            if target < 0:
                target *= -1
            i = 1
            sumtarget = 0
            moves = 0
            while sumtarget <= target:
                sumtarget += i
                i += 1
            print(1, sumtarget)
            i -= 1
            sumtarget -= i
            moves = (target - sumtarget) * 2 + i -1
            return moves
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    然后就去看了别人的题解,请添加图片描述
    写得很容易懂。
    灵茶山艾府
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    代码附上:

    class Solution:
        def reachNumber(self, target: int) -> int:
            target = abs(target)
            s = n = 0
            while s < target or (s - target) % 2:  # 没有到达(越过)终点,或者相距奇数
                n += 1
                s += n
            return n
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    c语言:解决判断两个字符串是不是互为旋转字符的问题
    1712A 300A嵌入式电源系统
    高并发系统限流原理
    TSINGSEE智能分析网关V4车辆结构化数据检测算法及车辆布控
    软考高级之系统架构师系列之UP、RUP、4+1视图、JAD、JRP、RAD
    【Leetcode刷题Python】密码校验
    【Java课堂】接口详解
    【JAVASE】Java泛型实例化
    微信公众号里怎么实现预订房间功能
    rabbitmq入门
  • 原文地址:https://blog.csdn.net/li_yizhixiaowukong/article/details/127683088