题目描述
Given a non-empty array of integers, return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).
思路
找到第三大的数,用三个数存储前三大的数,遍历数组,分别进行比较做出相应的更新。那么问题来了,这三个数初始值设为多少呢?设为多少都不能保证数组里没有,这样的话你怎么知道它是数组里的值还是初始值。很多时候初始化为MAX_VALUE,但是数组中也可能就是有这个数。 所以可以把int包装为Integer,初始化为null,或者可以分三次遍历分别找出这三个值