从最频繁出现的图中获取y值的最快方法是什么?我只有本地的最高和最低值。我只需要一个(随机)y值。
例如,如果我有这样的图形:
最常见的y值可以是0或1(如我所说,我只需要一个)。
谢谢您。
最佳答案
考虑从下到上移动的水平扫描线最初,它会0次符合图形如果它超过了最小值,它会比以前多满足两次曲线如果它跨越最大值,则它开始更少地遇到曲线两次。如果遇到端点,则根据其旁边的点的类型,它将开始与曲线多次或多次相交。
实际上,极小值和极大值是交替的,这样你就可以通过只看局部极值的奇偶性来判断增量。
因此,可以通过将极值与增量一起排序来找到解决方案。
Extrema/increments
0 2 -2 6 0
+1 -2 +2 -2 +1
Sorted extrema/increments
-2 0 0 2 6
+2 +1 +1 -2 -2
Number of intersections (prefix sum of the increments)
0 2 3 4 2 0
关于algorithm - 图表中最常出现的y值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23041566/