@@ -50,13 +50,98 @@ Both numbers with value 2 are both considered as second maximum.
50
50
### ** Python3**
51
51
52
52
``` python
53
-
53
+ class Solution :
54
+ def thirdMax (self , nums : List[int ]) -> int :
55
+ m1 = m2 = m3 = float (' -inf' )
56
+ for num in nums:
57
+ if num == m1 or num == m2 or num == m3:
58
+ continue
59
+ if num > m1:
60
+ m3, m2, m1 = m2, m1, num
61
+ elif num > m2:
62
+ m3, m2 = m2, num
63
+ elif num > m3:
64
+ m3 = num
65
+ return m1 if m3 == float (' -inf' ) else m3
54
66
```
55
67
56
68
### ** Java**
57
69
58
70
``` java
71
+ class Solution {
72
+ public int thirdMax (int [] nums ) {
73
+ long m1 = Long . MIN_VALUE ;
74
+ long m2 = Long . MIN_VALUE ;
75
+ long m3 = Long . MIN_VALUE ;
76
+ for (int num : nums) {
77
+ if (num == m1 || num == m2 || num == m3) {
78
+ continue ;
79
+ }
80
+ if (num > m1) {
81
+ m3 = m2;
82
+ m2 = m1;
83
+ m1 = num;
84
+ } else if (num > m2) {
85
+ m3 = m2;
86
+ m2 = num;
87
+ } else if (num > m3) {
88
+ m3 = num;
89
+ }
90
+ }
91
+ return (int ) (m3 == Long . MIN_VALUE ? m1 : m3);
92
+ }
93
+ }
94
+ ```
95
+
96
+ ### ** C++**
97
+
98
+ ``` cpp
99
+ class Solution {
100
+ public:
101
+ int thirdMax(vector<int >& nums) {
102
+ long m1 = LONG_MIN, m2 = LONG_MIN, m3 = LONG_MIN;
103
+ for (int& num : nums) {
104
+ if (num == m1 || num == m2 || num == m3) continue;
105
+ if (num > m1) {
106
+ m3 = m2;
107
+ m2 = m1;
108
+ m1 = num;
109
+ } else if (num > m2) {
110
+ m3 = m2;
111
+ m2 = num;
112
+ } else if (num > m3) {
113
+ m3 = num;
114
+ }
115
+ }
116
+ return (int) (m3 == LONG_MIN ? m1 : m3);
117
+ }
118
+ };
119
+ ```
59
120
121
+ ### **Go**
122
+
123
+ ```go
124
+ import "math"
125
+
126
+ func thirdMax(nums []int) int {
127
+ m1, m2, m3 := math.MinInt64, math.MinInt64, math.MinInt64
128
+ for _, num := range nums {
129
+ if num == m1 || num == m2 || num == m3 {
130
+ continue
131
+ }
132
+ if num > m1 {
133
+ m3, m2, m1 = m2, m1, num
134
+ } else if num > m2 {
135
+ m3, m2 = m2, num
136
+ } else if num > m3 {
137
+ m3 = num
138
+ }
139
+ }
140
+ if m3 == math.MinInt64 {
141
+ return m1
142
+ }
143
+ return m3
144
+ }
60
145
```
61
146
62
147
### ** ...**
0 commit comments