给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
此题比较简单,维护一个长度为3的有序数组,首先初始设置数组为mnt = [float('-inf'), float('-inf'), float('-inf')]。然后一次循环原始飞空数组,与mnt依次对比大小,更新mnt。最后判断mnt最小值是否为-inf,是就输出mnt最大值,否就输出mnt最小值。
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
此题比较简单,维护一个长度为3的有序数组,首先初始设置数组为mnt = [float('-inf'), float('-inf'), float('-inf')]。然后一次循环原始飞空数组,与mnt依次对比大小,更新mnt。最后判断mnt最小值是否为-inf,是就输出mnt最大值,否就输出mnt最小值。