| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- func thirdMax(nums []int) int {
 
- 	max := make([]int, 3)
 
- 	l := 0
 
- 	for _, i := range nums {
 
- 		switch l {
 
- 		case 0:
 
- 			max[0] = i
 
- 			l++
 
- 		case 1:
 
- 			if i == max[0] {
 
- 				continue
 
- 			}
 
- 			if i < max[0] {
 
- 				max[1] = i
 
- 			} else {
 
- 				max[0], max[1] = i, max[0]
 
- 			}
 
- 			l++
 
- 		case 2:
 
- 			if max[0] == i || max[1] == i {
 
- 				continue
 
- 			}
 
- 			if i < max[1] {
 
- 				max[2] = i
 
- 			} else if i < max[0] {
 
- 				max[1], max[2] = i, max[1]
 
- 			} else {
 
- 				max[0], max[1], max[2] = i, max[0], max[1]
 
- 			}
 
- 			l++
 
- 		case 3:
 
- 			if max[0] == i || max[1] == i || max[2] == i || i < max[2] {
 
- 				continue
 
- 			}
 
- 			if i < max[1] {
 
- 				max[2] = i
 
- 			} else if i < max[0] {
 
- 				max[1], max[2] = i, max[1]
 
- 			} else {
 
- 				max[0], max[1], max[2] = i, max[0], max[1]
 
- 			}
 
- 		}
 
- 	}
 
- 	if l < 3 {
 
- 		return max[0]
 
- 	}
 
- 	return max[l-1]
 
- }
 
 
  |