題目地址:
https://leetcode.com/problems/third-maximum-number/
給定一個非空數組,求其第三大元素(去重後的第三大)。若不存在,則返回最大值。可以用哈希表來做。代碼如下:
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
public class Solution {
public int thirdMax(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
if (set.size() > 3) {
set.remove(Collections.min(set));
}
}
return set.size() == 3 ? Collections.min(set) : Collections.max(set);
}
}
時間複雜度,空間。