算法笔试模拟题精解之“吃奶酪”

简介: 根据题意,如果要花费最少时间,则每个奶酪都让离奶酪最近的人去拿,因此,坐标<=50000的奶酪让Tom去拿,坐标>=50001的奶酪让Jerry去拿。

在线编程介绍

阿里云开发者社区在线编程产品,针对广大开发者学习、实践、面试、应聘、考试认证等打造的免费在线刷题神器。题库来自笔试模拟题、算法大赛模拟题等,界面整洁明了,操作简单,为用户营造专心答题的学习环境。点击链接开始体验:https://developer.aliyun.com/coding

本文为大家介绍其中的 第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

解题方法

根据题意,如果要花费最少时间,则每个奶酪都让离奶酪最近的人去拿,因此,坐标<=50000的奶酪让Tom去拿,坐标>=50001的奶酪让Jerry去拿。

具体实现时,可以设置一个time值,然后遍历数组。判断每一块奶酪的坐标范围,根据坐标判断应该让谁拿,再计算拿到这个奶酪需要多长时间,如果时间大于time,则用这个值替换掉time的值。

用这种方法,遍历整个数组后的time值即为 Tom 和 Jerry 拿到所有奶酪所用的最短时间。

时间复杂度:O(n)
空间复杂度:O(1)

看完之后是不是有了想法了呢,快来练练手吧>>查看题目:吃奶酪

720-150.png

相关文章
|
7月前
|
算法 搜索推荐 Java
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
Java数据结构 -- 常见算法分析(查找算法、排序算法)精解详解!!!
62 0
|
7月前
|
编解码 算法 前端开发
往年 | 大疆雷达算法校招笔试题目解析
往年 | 大疆雷达算法校招笔试题目解析
493 1
|
算法
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
压缩算法 【腾讯2020校园招聘-后台&综合-第一次笔试 】
88 0
|
算法 网络协议
骚戴独家笔试---算法篇4
骚戴独家笔试---算法篇4
64 1
|
存储 算法
骚戴独家笔试---算法篇3
骚戴独家笔试---算法篇3
205 0
骚戴独家笔试---算法篇3
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(下)
7大排序算法-- 堆排 快速排序 --精解(下)
86 0
|
搜索推荐
7大排序算法-- 堆排 快速排序 --精解(上)
7大排序算法-- 堆排 快速排序 --精解
53 0
|
搜索推荐 算法
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(下)
134 0
|
存储 搜索推荐
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解(上)
7大排序算法-- 直接插入,希尔,冒泡,选择 --精解
85 0
|
算法 Serverless 测试技术
骚戴独家笔试---算法篇5
骚戴独家笔试---算法篇5
59 0