给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
题目要求是O(n),因此所有sort(复杂度O(nlgn))是不正确的。
第一想法是使用优先队列来做,复杂度O(nlg3))的算法,但耗费堆内存,效率不高。
还未想到更优解法,先挖坑....
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
题目要求是O(n),因此所有sort(复杂度O(nlgn))是不正确的。
第一想法是使用优先队列来做,复杂度O(nlg3))的算法,但耗费堆内存,效率不高。
还未想到更优解法,先挖坑....