我正在從算法中學習測試,發現幾天內無法處理的問題。所以我寫在這裏尋求幫助。查找曼哈頓距離中兩組之間的距離
有關平面給定兩個不相交的集合:
G={(x_1^G, y_1^G), (x_2^G, y_2^G), ..., (x_n^G, y_n^G)}
D={(x_1^D, y_1^D), (x_2^D, y_2^D), ..., (x_n^D, y_n^D)}
Where for every 1 <= i, j <= n we have y_i^D < y_j^G, so G is above D.
查找 counts the distance between them
定義爲一種有效的算法:
d(G,D) = min{ d(a,b): a \in G and b\in D },
where d(a,b) = |x_a - x_b| + |y_a - y_b|
爲O(n^2)是微不足道的,所以這不是答案。
我希望解決方案不是太難,因爲它是從測試前的材料審查。任何人都可以幫忙嗎?
我認爲這將是一個常見問題的特例。但是,如果是特殊情況,那麼解決方案可能會更容易?
第三種方法對我特別感興趣。這種輪換和替代的工作方式如何?我無法想象它,我非常想理解它。 – xan
請你詳細說明這個方法嗎? – xan
我看到它的方式,這是一個很好的方法來找到有最大距離,而不是分鐘的點對... – xan