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
}