其他分享
首页 > 其他分享> > 414. Third Maximum Number

414. Third Maximum Number

作者:互联网

package LeetCode_414

/**
 * 414. Third Maximum Number
 * 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).
Example 1:
Input: [3, 2, 1]
Output: 1
Explanation: The third maximum is 1.
 * */
class Solution {
    /*
    * Time complexity:O(n), Space complexity:O(1)
    * */
    fun thirdMax(nums: IntArray): Int {
        var max1: Int? = null
        var max2: Int? = null
        var max3: Int? = null
        for (num in nums) {
            //avoid some same continue number
            if (num == max1 || num == max2 || num == max3) {
                continue
            }
            if (max1 == null || num > max1) {
                max3 = max2
                max2 = max1
                max1 = num
            } else if (max2 == null || num > max2) {
                max3 = max2
                max2 = num
            } else if (max3 == null || num > max3) {
                max3 = num
            }
        }
        return if (max3 == null) max1!! else max3
    }
}

 

标签:Third,max2,max3,max1,Maximum,414,Int,num,null
来源: https://www.cnblogs.com/johnnyzhao/p/13774266.html