需要编写用于检查矩阵[1000] [1000]中重复元素的函数。如果发现任何重复元素,则返回True,否则返回False。
我认为需要通过两个步骤来制定解决方案: 1.将矩阵中的每个元素从小到大排序(在排序期间我们可以检查相等的元素)例如,使用合并排序。 2.从矩阵中的第一个元素到最后一个元素逐个比较上一个和下一个元素。
这个解决方案的效率是否足够好?
答案 0 :(得分:2)
这是element distinctness problem,你的数组似乎不是很重要,你可以将它视为“常规”数组,并使用元素清晰度的“常规”解决方案解决它,这是:
i
索引arr[i] == arr[i+1]
。
O(nlogn)
时间,假设有效排序,只需要很少的额外空间。O(n)
时间,O(n^2)
时间最坏情况,并且需要O(n)
额外空间。