给定一个由n个整数对组成的集合,是否有一种快速的方法来确定集合中是否存在两个不同的整数对(x_1,y_1)和(x_2,y_2),使得x_1!=x_2且y_1!=y_2?
例如,{(0,1), (0,2), (2,1), (3,2)}具有{(0,2), (2,1)}。然而{(1,0), (2,0), (3,0)}没有任何满足要求的整数对。
一个朴素的方法是尝试所有的整数对。这里有O(n^2)种情况。你能否得到更接近线性时间的算法?
如果加快速度,我们可以假设这些整数对按照第一个坐标,然后是第二个坐标的顺序存储为一个数组中的指针。
例如,{(0,1), (0,2), (2,1), (3,2)}具有{(0,2), (2,1)}。然而{(1,0), (2,0), (3,0)}没有任何满足要求的整数对。
一个朴素的方法是尝试所有的整数对。这里有O(n^2)种情况。你能否得到更接近线性时间的算法?
如果加快速度,我们可以假设这些整数对按照第一个坐标,然后是第二个坐标的顺序存储为一个数组中的指针。
O(n)
。 - loopbackbee