Tom和Jerry都很喜欢吃奶酪,现在有n块奶酪散落在坐标轴上(1<=n<= 100000),他们分别在a1,a2,a3...an(1<=ai<=100000, 一个点可以有多块奶酪 )上,Tom 和 Jerry 分别在 1 和 100000 两个点上,他们每走一步需要花费 1s,问他们拿到所有的奶酪至少要花费多少时间,输入奶酪数量 n,和 n 个奶酪的坐标,输出一个数,表示他们拿到所有奶酪所用的最短时间。
根据题意可知,如果要花费最少时间,则每个奶酪都让离奶酪最近的人去拿,因此, 坐标 <=50000 的奶酪让 Tom 去拿,坐标 >=50001 的奶酪让 Jerry 去拿。具体实现时,可以设置一个 time 值,然后遍历数组。判断每一块奶酪的坐标范围,根据坐标判断应该让谁拿,再计算拿到这个奶酪需要多长时间,如果时间大于time,则用这个值替换掉 time 的值。用这种方法,遍历整个数组后的 time 值即为Tom和Jerry拿到所有奶酪所用的最短时间。 因此输入:4 [350,2000,80000,99999] 输出:20000
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。