开发者社区> 问答> 正文

遇见一个枚举的问题,求解答。

Tom和Jerry都很喜欢吃奶酪,现在有n块奶酪散落在坐标轴上(1<=n<= 100000),他们分别在a1,a2,a3...an(1<=ai<=100000, 一个点可以有多块奶酪 )上,Tom 和 Jerry 分别在 1 和 100000 两个点上,他们每走一步需要花费 1s,问他们拿到所有的奶酪至少要花费多少时间,输入奶酪数量 n,和 n 个奶酪的坐标,输出一个数,表示他们拿到所有奶酪所用的最短时间。

展开
收起
游客4skzfvnrxrzbi 2021-12-23 15:45:18 473 0
1 条回答
写回答
取消 提交回答
  • 根据题意可知,如果要花费最少时间,则每个奶酪都让离奶酪最近的人去拿,因此, 坐标 <=50000 的奶酪让 Tom 去拿,坐标 >=50001 的奶酪让 Jerry 去拿。具体实现时,可以设置一个 time 值,然后遍历数组。判断每一块奶酪的坐标范围,根据坐标判断应该让谁拿,再计算拿到这个奶酪需要多长时间,如果时间大于time,则用这个值替换掉 time 的值。用这种方法,遍历整个数组后的 time 值即为Tom和Jerry拿到所有奶酪所用的最短时间。 因此输入:4 [350,2000,80000,99999] 输出:20000

    2021-12-23 18:17:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载