luoheng
10/7/2019 - 3:46 AM

thirdMax

func thirdMax(nums []int) int {
    max1, max2, max3 := -int(^uint(0)>>1), -int(^uint(0)>>1), -int(^uint(0)>>1)
    for _, n := range nums {
        if n > max1 {
            max1, max2, max3 = n, max1, max2
        } else if n != max1 && n > max2 {
            max2, max3 = n, max2
        } else if n != max1 && n != max2 && n > max3 {
            max3 = n
        }
    }
    if max3 == -int(^uint(0)>>1) {
        return max1
    }
    return max3
}