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

江苏省宝应城市建设有限公司网站广州最新新闻事件

江苏省宝应城市建设有限公司网站,广州最新新闻事件,广州新冠疫情最新消息,网络科技公司网站题目链接 LeetCode-1033. 移动石子直到连续 题目描述 题解 题解一(Java) 作者:仲景 这题目挺难懂的,得画画图才能更好的理解 这也是LeetCode的尿性,习惯了,非得整这种别人看不懂的鸟语 你可以这样理解&a…

题目链接

LeetCode-1033. 移动石子直到连续

题目描述

在这里插入图片描述

题解

题解一(Java)

作者:@仲景
这题目挺难懂的,得画画图才能更好的理解
这也是LeetCode的尿性,习惯了,非得整这种别人看不懂的鸟语
你可以这样理解,给你一个假设长度为无穷的数组,其中有3个下标的位置赋值成了1,其余的都是0
问你,每次只能从头尾选择移动1次,最多多少次能让着3个1排到一起,最少多少次能让着3个1排到一起
这样也许会更好懂一些
先说最多的情况,最多的情况就是左边的1每次1步,一直移动到中间的1的前一个索引位置,右边的1每次1步,一直移动到中间的1的后一个索引位置
首先左右两个1的距离应该是 c-a-1,因为中间还有一个b,所以还要-1,那么最多的公式就是c-a-2
那么最少情况呢,可以分成好多种
情况一:abc本身索引就是连续的,不需要动
情况二:ab连续或者bc连续,只需要把另外一个挪过来就可以了,移动1次
情况三:abc之间有空隙,但是空隙只有1个,那么随便挪动另外一个过来,最少也是移动1次
情况四:abc之间有空隙,但是空隙很多,所有a移动到b的前一个位置需要1次,c移动到b的后一个位置需要1次,那么最少也得2次
所有情况就已经讲完了,下面的图和情况1234不是一一对应的,只是用来证明情况1234的图
在这里插入图片描述

class Solution {public int[] numMovesStones(int a, int b, int c) {int[] arr = {a, b, c};Arrays.sort(arr);a = arr[0];b = arr[1];c = arr[2];int min = 0;// 如果c和a相差2,那abc就是连续的,不需要移动// 只有c和a之间有超过1个格子的时候才需要移动if (c - a > 2) {if (b - a <= 2 || c - b <= 2) {// 如果abc之中有任何两个元素紧挨着或者中间只有一个格子的时候,最少只需要1次就够了min = 1;} else {// 如果abc之中没有任何一个格子紧挨或者相差1个格子,那么最少需要2次min = 2;}}// 最多就是c-a-2return new int[]{min, c - a - 2};}
}
http://www.hkea.cn/news/412450/

相关文章:

  • 北京婚恋网站哪家最好企业推广宣传方式
  • 国发网站建设西安做网站公司
  • 网站推广服务合同简述网络营销的主要方法
  • 信息门户网站是什么成人计算机培训机构哪个最好
  • 网站建设公司 中企动力公司东莞商城网站建设
  • b2c的电子商务网站自己想做个网站怎么做
  • 京东pc网站用什么做的如何注册网站怎么注册
  • 长沙商城网站制作seo线下培训课程
  • web网站开发公司网站制作优化排名
  • 这么做3d网站企业邮箱网页版
  • 瑞安网站建设公司关键词排名网络推广
  • 南京学做网站友情链接检查工具
  • 参考文献网站开发百度重庆营销中心
  • 如何做微信ppt模板下载网站企业网页设计公司
  • 做b2b网站百度点击快速排名
  • 网站怎么做移动图片不显示不出来吗芭嘞seo
  • 旅游网站建设服务器ip域名解析
  • 企业网站建设三个原则百度指数资讯指数是指什么
  • 房地产集团网站建设方案软文文案案例
  • 阜蒙县建设学校网站是什么北京seo编辑
  • 珠海建设局网站十大经典事件营销案例分析
  • 创建网站开发公司互联网推广引流是做什么的
  • 万盛集团网站建设seo网站推广全程实例
  • 做教育的网站需要资质吗网站怎么开发
  • 微网站怎么做滚动中国万网域名注册官网
  • 个人如何免费建网站seo在线优化工具 si
  • 双线主机可以做彩票网站吗网络推广合作协议
  • 做外贸的b2b网站域名批量查询系统
  • 建设网站需要哪些职位网站建设策划书
  • 苏州网站建设哪里好网站点击排名优化