给定一个数组,我们如何找到具有 O(n) 复杂度的第二大数字,我能得到的最佳复杂度是 O(nlogn) 使用排序技术。如何获得 O(n) 时间复杂度?
最佳答案
这是一个简单的线性解决方案:
firstMax = max(a[0], a[1])
secondMax = min(a[0], a[1])
for elem in a:
if elem >= firstMax:
secondMax = firstMax
firstMax = elem
else if elem > secondMax:
secondMax = elem
print(secondMax)
关于arrays - 复杂度为 O(n) 的数组中第二高的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28051446/