今天我在面试中被问到以下问题:
给定一个n行n列的整数数组,不包含重复的值,并且从左到右以及从上到下的值递增,提供一种算法来检查给定的值是否在数组中。
我提供的答案类似于这个线程中的答案:
算法:在二维整数数组中高效搜索整数的方法?
这个解决方案的时间复杂度为O(2n),我认为这是最优解。
然而,面试官告诉我,可能可以用次线性时间解决这个问题。我已经想破了头,但是却没有任何思路。
是否有次线性解决方案,或者这是最优解?
今天我在面试中被问到以下问题:
给定一个n行n列的整数数组,不包含重复的值,并且从左到右以及从上到下的值递增,提供一种算法来检查给定的值是否在数组中。
我提供的答案类似于这个线程中的答案:
算法:在二维整数数组中高效搜索整数的方法?
这个解决方案的时间复杂度为O(2n),我认为这是最优解。
然而,面试官告诉我,可能可以用次线性时间解决这个问题。我已经想破了头,但是却没有任何思路。
是否有次线性解决方案,或者这是最优解?
,而是
O(N * log(M/N))`。 - justhalf