- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们有三套s1,s2,s3。我需要找到x,y,z这样
x E S1号
是S2
Z E S3区
设min表示x,y,z中的最小值
让max表示x,y,z的最大值
max min表示的范围应该是可能的最小值
最佳答案
当然,IVlad所描述的完全BruttFrand解决方案简单,因此编写更容易和更快,但其复杂性是O(n3)
。
根据你的algorithm
标签,我想发布一个更复杂的算法,它有一个O(n2)
最坏的情况和O(nlogn)
平均复杂度(几乎可以肯定,但是我懒得做个证明)。
算法描述
考虑考虑一些抽象的元组我们想要找到一个元组,它的最大和最小元素之间的距离最小。我们可以说,距离实际上是由我们的最大元素和最小元素创建的。因此,它们之间的元素的价值其实并不重要,只要它位于最大值和最小值之间。
所以,这是方法我们分配一些额外的集合(我们称之为(X, Y, Z)
),并将每个初始集合(S
,X
,Y
)合并为一个集合。我们还需要一种查找刚刚创建的集合中每个元素的初始集合的能力(因此,如果我们指向Z
中的某个元素,我们可以说S
并询问“这家伙是从哪里来的?”,我们的应用程序应该回答“他来自S[10]
”。
之后,让我们根据新集合的键对其进行排序(在某些情况下,这将是o(n logn)或o(n))。
确定最小距离
现在有趣的部分来了。我们要做的是计算一些人工值,我们称之为最小距离,并将其标记为Y
,其中S
是来自d[x]
的某个元素。该值是指使用序列中当前元素的前置/后继元素可以达到的最小x
距离。
考虑下面的例子-这是我们的S
集合(第一行显示索引,第二行-值和字母max - min
,S
和X
表示初始集合):
0 1 2 3 4 5 6 7
------------------
1 2 4 5 8 10 11 12
Y Z Y X Y Y X Z
Y
元组。
Z
),我们可以说我们的
(x, y, z)
对看起来肯定像
S[4]
,因为它应该有我们计算距离的元素(很明显,呵呵)。
(x, y, z)
和
(something, 8, something)
。我们希望这些元素在
X
距离方面是最好的有一个简单的方法来选择它们。
Z
中在这种情况下,我们将从两个方向的
max - min
和
Y
中寻找两个最近的元素(总共4个元素)。
X
的第一个元素(左/右,无关紧要),那么这个元素在距离上比任何其他元素都更适合我们。这是因为我们的
Z
集合被排序了。
X
的元素的距离),我们将从右侧标记索引
S
和
4
的元素,从左侧标记索引
6
和
7
的元素。
Z X Y X Z
2 5 8 11 12
1
元组的最佳距离是
3
。所以,我们存储
(11, 8, 12)
(这里是元素索引)。
4
集合中的每个元素都这样做(在最坏的情况下,这个操作将花费
d[5] = 4
时间,比如平均
5
)。
S
元组。这就是答案。
COMBINE (X, Y, Z) -> S
SORT(S)
FOREACH (v in S)
DETERMINE_DISTANCE(v, S) -> d[v]
DETERMINE_TUPLE(MIN(d[v]))
关于algorithm - 最小范围3套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856175/
我正在尝试通过遵循 https://jqueryui.com/slider/#range 通过 jQueryUI 实现价格范围. 我的代码是: jQuery UI Slider
我正在尝试使用 jquery ui 显示两个值之间的范围,当用户移动最大值和最小值时,该范围会发生变化。我用我的尝试创建了一个jsfiddle。我尝试用 ("values")[1]) - (("val
我是一名优秀的程序员,十分优秀!