码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • LeetCode每日一题——754. 到达终点数字


    LeetCode每日一题系列

    题目:754. 到达终点数字
    难度:普通


    文章目录

    • LeetCode每日一题系列
    • 题目
    • 示例
    • 思路
    • 题解


    题目

    在一根无限长的数轴上,你站在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 。

    提示:

    -109 <= target <= 109
    target != 0

    思路

    数学问题, 这里target的值为正或负对结果无影响,这里取target的绝对值作为target,假设我们从0一直往前走,且能走到target或target之前,会遇到以下几种情况:

    • 走n步刚好走到了target,这时n就是最终答案
    • 走n步,超过了target偶数间距index,我们只需要将第index/2这一步往回走即可,这时n也是最终答案
    • 走n步,超过了target奇数间距。1、继续向前走一步,如果间距为偶数则和第二种情况相同2、继续向前走一步,如果间距为奇数,那就再向前走一步,此时二者间距必为偶数(奇数+偶数+奇数=偶数),此时和第二种情况相同。

    题解

    class Solution:
        def reachNumber(self, target: int) -> int:
        	# 目标取绝对值
            target = abs(target)
            # 步数和步长
            step, n = 0, 0
            # 当步长小于target或者间距为奇数时,一直往前走,直到间距为偶数时返回步长即可
            while step < target or (step - target) % 2 != 0:
                n += 1
                step += n
            return n
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    Oracle 监控的指标有哪些和oracle巡检的内容
    SDEI初探-透过事务看本质
    华为数通方向HCIP-DataCom H12-831题库(多选题:121-140)
    单元测试 - 测试场景记录
    同事写了个http接口,我通过springCloud-feign调了一晚上一直熔断,让我开始怀疑我是不是在下一批的裁员名单中
    es6新特性
    STL-deque
    Linux搭建我的世界MC服务器 【Minecraft外网联机教程】
    centos7服务器升级ssh版本&&修复ssh漏洞 CVE-2016-20012、 CVE-2021-41617
    元宇宙“新基建”时代与不赚快钱的Cocos
  • 原文地址:https://blog.csdn.net/m0_52000372/article/details/127690430
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号