阿里笔试模拟题-49.吃奶酪

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

示例1
输入:
4
[350,2000,80000,99999]
输出:
20000

题目地址
49.吃奶酪

题目解题方法有文档解释,文档下载地址为以下
程序员面试宝典

在这里插入图片描述

但是官方只有解题思路,没有具体代码,所以这边我就附上我的解题代码,具体思路可以参照上面的解释,不一定完全一样,但是相似。

public int solution(int n, int[] nums) {
        int maxLess50000 = 1;
        int minLarge50000 = 100000;
       for(int i=0;i<n;i++){
           if(nums[i]>50000){
               minLarge50000 = Math.min(minLarge50000, nums[i]);
           } else {
               maxLess50000 = Math.max(maxLess50000, nums[i]);
           }
       }
       return Math.max((maxLess50000-1),(100000-minLarge50000));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值