当前位置: 首页 > news >正文

掘金.计算位置 x 到 y 的最少步数(简单01)

public class Main {public static int solution(int xPosition, int yPosition) {int diff = (yPosition - xPosition);// 计算差值if(diff < 0)diff *= -1;int steps = 0; // 初始化步数int begin = 0;// 初始化当前位置int step = 1;//初始化步长// 循环直到到达目标位置while (begin < diff / 2) { begin += step;step++;steps++;}if(begin == diff / 2){return steps * 2;}else if( (diff - 2 * (begin - step)) > step ){return steps * 2;}else return steps * 2 - 1;}
}

简单题,多种解法,这里是对能出现的所有三种情况进行判断,

从零开始累加,大于或者等于总长度德一半停止累加:

        等于总长度的一半 = 直接乘以2

        大于总长度的一半时,判断多出来的长度是否等于最后一步步长

                大于最后一步步长: (例如1 2 3 2 2 1 中,当累加到3时,大于总长度的一般,多出来的长度=11 - 2 * (1 + 2 )= 5 > 3 所以一步走不完,要拆成两步)

                等于最后一步步长:(*2-1)

最后代码可以更加简洁:

public class Main {public static int solution(int xPosition, int yPosition) {int diff = (yPosition - xPosition);// 计算差值if(diff < 0)diff *= -1;int steps = 0; // 初始化步数int begin = 0;// 初始化当前位置int step = 1;//初始化步长// 循环直到到达目标位置while (begin < diff / 2) { begin += step;step++;steps++;}if( (diff - 2 * (begin - step)) == step )return steps * 2 - 1;return steps * 2;}}

http://www.mrgr.cn/news/57216.html

相关文章:

  • StarTowerChain:开启去中心化创新篇章
  • 微信小程序上传图片添加水印
  • TypeScript系列:第五篇 - 断言守卫(as、satisfies、is、as const)
  • 学习笔记之ifconfig看不到ens33的解决方法和普通用户sudo命令的配置以及Linux基础命令
  • 11.学生成绩管理系统(Java项目基于SpringBoot + Vue)
  • 京准电钟:NTP网络授时服务器应用航管自控系统
  • 面试总结分享:25道数据库测试题
  • Vue01
  • leetcode hot100【LeetCode 49. 字母异位词分组】java实现
  • ScheduledThreadPoolExecutor的源码剖析
  • Visual Studio2022 Profile 工具使用
  • netty之ChannelPipeline和ChannelHandler
  • 【网络】HTTP协议(下)
  • 深信服超融合HCI6.8.0R2滚动热升级至HCI6.9.1
  • 京东 北京 java 中级: 哪些情况下的对象会被垃圾回收机制处理掉? 哪些对象可以被看做是 GC Roots 呢?对象不可达,一定会被垃圾收集器回收么?
  • 列表、元组、集合、字典和 pandas 数据框(DataFrame)之间的数据转换
  • JavaScript(操作元素属性:样式style,className,classList,表单元素,自定义属性,间歇函数)注册用户协议同意倒计时
  • 【C++篇】探索STL之美:熟悉使用String类
  • 【AIGC】AI时代降临,AI文案写作、AI绘画、AI数据处理
  • 时空智友企业流程化管控系统uploadStudioFile接口存在任意文件上传漏洞
  • static、 静态导入、成员变量的初始化、单例模式、final 常量(Content)
  • 【Python系列】poetry安装依赖
  • 并行计算的未来:大型模型的训练与优化
  • H5的Canvas绘图——使用fabricjs绘制一个可多选的随机9宫格
  • class 9: vue.js 3 组件化基础(2)父子组件间通信
  • vscode使用socks5代理ssh-remote