问题:给定一个数组A,它代表一条线上的点,例如[5,-4,1,3,6]和一个数字M=3,找到它们A之间的距离是 的倍数的点的最大子集M。
A
[5,-4,1,3,6]
M=3
M
在示例中,两个可能的子集将是[-4,5](距离 9)和[3,6](距离 3)。
[-4,5]
[3,6]
显而易见的蛮力解决方案是计算每对O(N^2)时间点之间的距离,然后通过逐步构建子集来构建一组候选。
O(N^2)
有没有更有效的解决方案?
language-agnostic algorithm
algorithm ×1
language-agnostic ×1