![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
你好Qt
爱生活,爱编程,爱分享
展开
-
可视化讲解:什么是数飞机问题?
前言概念介绍在上一节“算法:什么是数飞机问题”中我们已经详细的描述了数飞机问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明讲解该问题的原理。原理讲解我们可以用一个Map来记录每一时间点的降落和起飞的飞机数。如(1,10)可以用map记录为map[1]++,代表1时刻多了一只飞机,map[10]–,代表10时刻少了一只飞机。如(2, 3)可以用map记录为map[2]++,代表2时刻多了一只飞机,map[3]–,代表3时刻少了一只飞机。依此类推,然.原创 2022-02-26 09:00:00 · 369 阅读 · 0 评论 -
算法:什么是数飞机问题?
最近小多米一直爬在窗子边抬头看着天空,指着空中飞机留下的白色痕迹,激动的手舞足蹈的给我说:飞机,飞机。其实每架飞机的起飞和降落都有固定的时间,假定已经知道了每架飞机起飞和降落的时间列表,小多米想知道天空同时最多有多少架飞机?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“数飞机”问题。“数飞机”问题规则如下:已知飞机的起飞和降落时间的列表,用序列 interval 表示。如果多架飞机降落和起飞在同一时刻,我们认为降落有优先权小多米需要计算出天上同时最多有多少架飞机?样例1如下:.原创 2022-02-25 18:15:00 · 844 阅读 · 0 评论 -
可视化讲解:什么是分糖果问题?
前言概念介绍在上一节“算法:什么是分糖果问题?”中我们已经详细的描述了分糖果问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解首先初始化每个人一个糖果,然后这个算法通过遍历两遍来解决这个问题。第一遍我们从左向右进行遍历。如果右边的小朋友的等级高,就给右边的小朋友加一个糖果,这样保证从左到右这个方向上高等级的小朋友分的糖果多。再从右向左遍历一遍,如果相邻两个小朋友左边的等级高,而左边的糖果又少的话,则左边小朋友分的糖果数为右边小朋友.原创 2022-02-25 18:00:00 · 716 阅读 · 0 评论 -
算法:什么是分糖果问题?
小多米已经快到了能吃糖果的年纪了。周末,小多米和小区的小朋友们玩石头剪刀布游戏,规定:谁赢的次数多,谁的得分就高,然后按照评分来个小多米和其他小朋友分糖果,并且保证每个小朋友都至少得到一颗糖果(不给就随时哭给你看,手动狗头)。小多米需要统计出最少需要准备多少颗糖果?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“分糖果”问题。“分糖果”问题规则如下:有 N 个小孩站成一列。每个小孩有一个评级。给定数组 ratings 代表这些小孩的评级。每个小孩至少得到一颗糖果。评级越高的小孩可以比他.原创 2021-04-15 13:46:14 · 1917 阅读 · 0 评论 -
可视化讲解:什么是跳跃游戏问题?
前言概念介绍在上一节算法:什么是跳跃游戏问题?中我们已经详细的描述了跳跃游戏问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解我们可以将该问题转换成求最大距离问题。以输入[2,3,1,1,4]数组为例。我们遍历该数组可知:num[0]的最大距离为:2+0=2<数组的长度,所以到不了数组最后一个位置。num[1]的最大距离为:3+1=4=数组的长度,所以可以到数组最后一个位置。num[2]的最大距离为:1+2=3<数组.原创 2021-04-15 13:45:00 · 200 阅读 · 0 评论 -
算法:什么是跳跃游戏问题?
小多米一转眼已经快一岁了,虽然他现在还不会走,但是已经有种跃跃欲试的想跳的冲动了。现在小多米想知道经过有限的步骤,能否从这头跳到那头?为了帮助小多米解决这个问题,今天我们就来看看算法领域的“跳跃游戏”问题。“跳跃游戏”问题规则如下:给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。判断你是否能到达数组的最后一个位置。小多米需要计算出能否到达数组的最后一个位置?样例1如下:输入:[2,3,1,1,4]输出:true解释:从位置0到.原创 2021-04-15 13:42:08 · 564 阅读 · 0 评论 -
可视化讲解:什么是车队问题?
前言概念介绍在上一节“什么是车队问题?”中我们已经详细的描述了车队问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理原理讲解车队问题解决的关键在于使用一个标准来衡量一辆车能否追上另外一辆车。由于各个车辆的初始位置不同,并且各自的速度也不同,那么可以考虑的只有时间了。所以我们先计算出在不考虑车队合并的情况下,各辆车到达终点的时间。不难理解的是如果一辆车离终点近,并且到达终点花的时间长,那么它的速度就相对慢;如果一辆车离终点远,但是它到达终点花的.原创 2021-04-14 17:51:44 · 233 阅读 · 0 评论 -
算法:什么是车队问题?
最近小多米喜欢玩各种各样的玩具车,有的玩具车的动力足跑得快,有的玩具车动力小跑的慢。小多米就很好奇,想知道怎么样做两个玩具车才能同时到达目的地。为了帮助小多米解决这个问题,今天我们就来看看算法领域的“车队”问题。“车队”问题规则如下:N辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着.原创 2021-04-14 17:49:53 · 357 阅读 · 1 评论 -
可视化讲解:什么是任务计划问题?
前言概念介绍在上一节“算法:什么是任务计划问题?”中我们已经详细的描述了任务计划问题的基本概念,在这里我们就不再赘述。下面我们用具体的例子来说明解该问题的原理注意在执行两个“相同的任务”之间,必须至少有n个单位时间,此时CPU不能执行该任务,只能执行其他任务或者不工作。原理讲解假设最大任务执行次数为a,该任务编号为A,我们不考虑其他任务,其需要的等待时间是(a - 1) * n。除去编号为A的任务,假设还有最大任务执行次数为b,该任务编号为B的任务。该任务中的.原创 2021-04-14 17:47:12 · 197 阅读 · 0 评论 -
算法:什么是任务计划问题?
最近小多米喜欢做各种各样的任务计划,但是这么多任务在一起,她就头大不知道该先做哪个?也不知道怎么才能以最短的时间完成这些任务?为了帮助小多米解决这个问题,今天我门就来看看算法领域的“任务计划”问题。“任务计划”问题规则如下:给定一个字符串,表示CPU需要执行的任务。 这个字符串由大写字母A到Z构成,不同的字母代表不同的任务。完成任务不需要按照给定的顺序。 每项任务都可以在一个单位时间内被完成。 在每个单位时间,CPU可以选择完成一个任务或是不工作。但是,会有一个非负的冷却时间“n”,表示在执行两个.原创 2021-01-08 14:11:34 · 345 阅读 · 2 评论