我需要一种算法,可以在屏幕上已有的其他小工具窗口之间的第一个可用空间中找到小工具窗口。基本上,屏幕将包含不同大小的小工具窗口,所有这些窗口都位于不同的位置当向屏幕添加另一个固定大小的小工具时,我需要一种可以放置小工具的方法,即在小工具之间的空白区域。如果算法无法找到enought space,那么小工具将被放置在现有小工具的底部。
我已经考虑创建一个2维数组,代表包含所有小工具和它们占用的空间的屏幕,但我认为可能有更好的方法来做到这一点。
要求如下
谢谢。
答案 0 :(得分:2)
假设您找到了新小工具的位置。
这意味着,您可以尝试集合x
中{0, g1.right, g2.right, .., gn.right}
的所有组合以及集合y
中{0, g1.bottom, g2.bottom, .., gn.bottom}
的所有组合。
非常简单并且提供O(n^3)
复杂性。 (n^2
来自上方,另一个n
来验证该位置是否可用)