【发布时间】:2018-07-25 22:47:00
【问题描述】:
给定一个长度为 n 的项目列表,其中想要的项目的最大数量是 m 和 m < n,其中列表中最有价值/最有用的项目是最远的项目从任何其他项目。如何从列表中删除项目以将列表大小减小到 m。
例如,对于带有
m == 2的[ a, b, c, d, e ],我们将得到[ a, e]例如,对于带有
m == 3的[ a, b, c, d, e ],我们将得到[ a, c, e ]- 例如,对于带有
m == 4的[ a, b, c, d, e ],我们将得到[ a, b, c, e ]或[ a, c, d, e ]。 (任何一个答案都是有效的;但应该只返回一个,最好是确定性地返回。)
注意:我正在概括一个真正的问题,即从视频中选择具有代表性的帧。代码将用python编写。
【问题讨论】:
-
首先,
[ a, b, c, d, e ]是指['a', 'b', 'c', 'd', 'e'],还是别的什么意思? “最远”是什么意思?您是否想到了某种距离函数,例如abs(ord(x) - ord(y))?如果是这样,是否保证这些值按排序顺序排列?你能给我们一些例子,说明你想要的输出值不是线性增加的吗?或者您只是最小化 indexes 之间的距离,而不是跳过的 values 之间的距离?还是……?