繁体   English   中英

如何从每个排序列表中选择一个数字,以使最小值和最大值之间的差异尽可能小? [关闭]

How to pick one number from each sorted list so that the difference between the minimum and maximum is as small as possible? [closed]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

考虑有数字按递增顺序排列的 k 列表。 从每个列表中选择一个数字,使得输出列表中最高数字和最低数字之间的差异最小:

list 1-1,3,5,9,10
list 2-2,4,6,8
list 3-7,11,12,13

输出应该是 5,6,7。

从 list-l 中选择 5,从 list-2 中选择 6,从 list-3 中选择 7

由于该列表中最高和最低数字之间的差异为 2,即 7-5,因此请考虑存在 k 列表。

1 个回复

我可以在O(N*LogK)解决这个问题,这里N是 k 列表中的数字总数。

1、为每个链表维护一个指针,从0开始。

2、以当前指针为您选择的数字,更新答案。

3、选择数量最少的一个,加一(只要没到那个列表的末尾),如果可能,返回第2步,否则终止。

在第 2 步和第 3 步中,使用堆来保持最小值和最大值,从而将时间从O(K)减少到O(LogK)

4 找到列方式排序矩阵中每列中一个元素的行的最大和最小元素之间的最小差异

我遇到了一个问题,但没有比O(m X n)更好的方法 2D数组包含逐列排序的数组,有没有办法从每列中选择一个元素并创建一行,以使该行中最大和最小元素的差异最小。 例如 答案应该是2,因为你可以从第一个col中选择3个,从第二个中选择4个,从第三个中选择5个,从而使第3行4 5 5 ...

5 最小游戏数和最大游戏数的区别

问题:显示所有具有以下条件的玩家的姓名:该玩家的最小和最大游戏数之差大于 5。 我有点失落。 我不太确定这是正确的方法,我应该如何进行:我应该使用count并找到最小和最大游戏数并与大于 5 进行比较,还是应该使用count 、 min和max函数代替。 如果有人能解释我的逻辑,将不胜感激。 ...

9 如何最小化2D数组的最大和最小元素的绝对差在每行一次获取元素的情况下

从2D数组(nxm)中,我们必须从每一行中获取一个元素,并制作一个大小为n的数组。 如何最小化此数组形成的最大和最小元素之间的差异? 到目前为止,我尝试分别对每一行进行排序,然后采用第一列的最大值和最后一列的最小值。 如果两者都具有不同的行索引,则继续进行操作,否则检查第二个最大的最小 ...

10 如何在最小值和最大值之间找到缺失的数字

我想制作一个下面的 NumPy 数组; 随机数:0~9(0<=值<=9)随机一维尺寸:5~9(5<=尺寸<=9) 我希望在 min 和 max 之间找到缺失的数字,所以我做了一个这样的代码 按照我的目的,输出将是 [5,6]。 如果输入是 [1, 2, 3, 4, 5 ...

2020-10-27 14:59:09 1 33   numpy
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM