LeetCode每日一题——754. 到达终点数字

news/2023/12/1 17:23:30 标签: leetcode, 算法, Python, 数据结构, 数学问题

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

http://www.inspinia.net/a/15914.html

相关文章

EasyCVR及智能分析网关在校园视频融合及明厨亮灶项目中的应用方案设计

随着校园智能化需求的不断增长&#xff0c;越来越多的校园逐渐开始升级校园监控视频平台&#xff0c;将原先传统的视频监控系统&#xff0c;逐渐升级转变为灵活性强、视频能力丰富、具备AI检测能力、并能支持视频汇聚与统一管理的智能化校园综合管理平台。 在某学校的视频监控…

回溯算法题目

文章目录1.lc77 组合2.lc216 组合总和 III3.lc17 电话号码的字母组合4.lc39 组合总和5.lc40 组合总和 II6. lc131 分割回文串1.lc77 组合 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 https://leetcode.cn/p…

IC工程师入门必学《Verilog超详细教程》(附下载)

Verilog HDL&#xff08;简称 Verilog &#xff09;是一种硬件描述语言&#xff0c;用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog 继承了 C 语言的多种操作符和结构&#xff0c;与另一种硬件描述语言 VHDL 相比&#xff0c;语法不是…

PMP知识点300条(4)

43、几种分析技术区别 备选方案分析&#xff1a;用于在出现偏差时选择要执行的纠正措施或纠正措施和预防措施的组合。 成本效益分析&#xff1a;有助于在项目出现偏差时确定最节约成本的纠正措施。 偏差分析&#xff1a;审查目标绩效与实际绩效之间的差异&#xff08;或偏差…

Linux篇【3】:Linux环境基础开发工具使用(中)

目录 一、Linux 编译器&#xff1a;gcc/g 的使用 1.1、知识拓展&#xff1a; 1.2、如何安装 C/C 标准静态库&#xff1a; 1.3、头文件与库文件&#xff1a; 1.4、静态库&#xff0c;静态链接&#xff0c;动态库&#xff0c;动态链接&#xff1a; 二、简单 vim 配置 2.1、…

一文读懂qt界面设计(分裂器,布局,拉伸,各种属性设置)

可以先看看我这个文章&#xff1a;qt关于界面设计中的一些知识总结_我是标同学的博客-CSDN博客_qt 水平伸展 现在我们来正式开始讲解。 布局种类 qt中能称为布局管理器的有如下6个&#xff1a; 水平布局&#xff08;QHBoxLayout&#xff09;垂直布局&#xff08;QVBoxLayout…

四、JavaScript任务管理[同步与异步、宏任务、微任务]

一、同步与异步 解释&#xff1a;js是一个单线程的语言&#xff0c;但是为了发送ajax&#xff0c;渲染等需要需要异步请求&#xff0c;为了防止主线程的阻塞&#xff0c;&#xff08;事件循环&#xff09;Event Loop 的方案应用而生。 同步&#xff1a;普通的代码如console.l…

摩托罗拉手机连接Wifi后提示“网络受限”问题的解决!

摩托罗拉手机连接Wifi后提示“网络受限”问题的解决! 配置wifi解决“网络受限”方法:因为我们所做的是墨西哥业务,使用国内手机有时候无法模拟国外出现线上的bug,所以从墨西哥寄回国内的摩托罗拉的手机进行测试,连接WiFi后会提示"无法连接互联网",搞了很长时间…

swagger工具编写接口文档

1、什么是swagger2 编写和维护接口文档是每个程序员的职责&#xff0c;根据Swagger2可以快速帮助我们编写最新的API接口文档&#xff0c;再也不用担心开会前仍忙于整理各种资料了&#xff0c;间接提升了团队开发的沟通效率。 2、常用注解 swagger通过注解表明该接口会生成文档…

java写测试类

写方法的类&#xff08;有返回值&#xff09;&#xff1a; package com.jhsoft.product.util;import org.springframework.web.multipart.MultipartFile;import java.util.List; import java.util.Map;public class InsuranceTools { //因为有返回值String 所以下面要return返…

使用 Android Studio 给 Unity 打包 .SO 文件 (图文详细教程)

首先需要安装 NDK ! 如未安装NDK&#xff0c;可参考这里&#xff1a; Android NDK Win10安装及环境变量配置&#xff08;图文详细教程&#xff09;_魔术师Dix的博客-CSDN博客之前因为工作原因需要用到Android NDK &#xff0c;但是由于我是Unity开发&#xff0c;平时一般不会用…

Python多进程

​ 大家看过前面文章的应该都知道python中的GIL的存在&#xff0c;也就是多线程的时候&#xff0c;同一时间只能有一个线程在CPU上运行&#xff0c;而且是单个CPU上运行&#xff0c;不管你的CPU有多少核数。如果想要充分地使用多核CPU的资源&#xff0c;在python中大部分情况需…

数据库等值查询与统计信息

概念 统计信息是为优化器的 cost 估算提供数据支撑&#xff0c;其中很重要的一点需求便是等值查询(EQUALS, IN 等) 场景下的基数估算。考虑以下 Case CREATE TABLE mc_tac_template (ID BIGINT ,NAME varchar(50) NOT NULL,GENDER varchar(10) NOT NULL,PRIMARY KEY (ID),KEY…

【C语言】-动态内存管理

文章目录前言1、动态内存管理函数的介绍1.1、malloc和free1.2、calloc1.3、realloc2、常见动态内存的错误2.1、对NULL指针的解引用2.2、对动态开辟空间的越界访问2.3、对非动态开辟的内存空间使用了free释放2.4、使用free释放了一块动态开辟的内存的一部分3.5、对同一块动态内存…

Python与爬虫有什么关系?

爬虫一般是指网络资源的获取&#xff0c;因为python的脚本特征&#xff0c;Python易于配置&#xff0c;对字符的处理也非常灵活&#xff0c;加上python有丰富的网络抓取模块&#xff0c;所以两者经常联系在一起。 接下来我们可以详情了解python到底有什么作用。 首先Python翻译…

消息中间件Kafuka学习——初次配置使用

MQ本质&#xff1a; 例如 ActiveMQ、RabbitMQ、RocketMQ 等中间件。采用这种模型&#xff0c;本质就是将要推送的数据&#xff0c;不在存放在当前应用程序的内存中&#xff0c;而是将数据存放到另一个专门负责数据处理的应用程序中&#xff0c;从而实现服务解耦。 kafuka模型:…

【C++】多态

前言 hi~ 大家好呀&#xff0c;欢迎来到我的C笔记系列~ 本篇我会揭开C中多态这一层神秘的面纱&#xff0c;理解C中多态的实现&#xff0c;底层逻辑。做到比较熟悉的掌握C面向对象的相关知识。 上一篇的C笔记在这里哦~ 【C】继承- 赋值兼容转换、虚基表_柒海啦的博客-CSDN博客​…

Java工具篇-Git 基于IDEA管理的本地仓库同时关联多个远程仓库

Git关联多个远程仓库首先先来谈谈我遇到问题的场景&#xff0c;为什么我需要要关联多个仓库&#xff1f; 我在参与一个开源项目时&#xff0c;是通过fork源仓库&#xff0c;我是通过pr&#xff08;pull request&#xff09;的方式更新自己的仓库和提交代码。 操作过程如图&…

学堂在线-大数据绪论

1.什么是大数据 big data is all-encompassing ternmfir for any collection of data sets so large and complex that it becomes difficult to process using traditional data processing application. 简而言之就是数据量很大和很复杂 大数据中提取价值的基础装备 100m…

【STM32训练—WiFi模块】第一篇、STM32驱动ESP8266WiFi模块获取网络时间

目录 第一部分、写在前面 1、硬件准备 2、相关的AT指令 3、参考博客 第二部分、电脑串口助手调试ESP8266模块获取网络时间 1、ESP8266获取时间的流程 2、具体实现步骤 第三部分、STM32驱动ESP8266模块获取网络时间 1、实现原理 2、相关代码 第四部分、总结 1、效果展…