414. 第三大的数

执行用时:28 ms, 在所有 Swift 提交中击败了86.11%的用户
内存消耗:14.1 MB, 在所有 Swift 提交中击败了13.89%的用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
func thirdMax(_ nums: [Int]) -> Int {
var sortnum = nums.sorted(by: {$0 > $1})
let n = sortnum.count
var diff = 1
for i in 1 ..< n {
if sortnum[i] != sortnum[i-1] {
diff += 1
}
if diff == 3 {
return sortnum[i]
}
}
return sortnum[0]
}
}

set去重+排序

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int thirdMax(int[] nums) {
HashSet<Integer> set = new HashSet<>();
for (int num : nums) {
set.add(num);
}
ArrayList<Integer> list = new ArrayList<>(set);
Collections.sort(list);
return list.size() < 3 ? list.get(list.size() - 1) : list.get(list.size()-3);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public int thirdMax(int[] nums) {
Arrays.sort(nums);
int diff = 1;
int last = nums.length - 1;
for (int i = last; i >= 1; i--) {
if (nums[i] != nums[i-1]) {
diff++;
}
if (diff == 3) {
return nums[i-1];
}
}
return nums[last];
}
}

414. 第三大的数
https://pisces34.github.io/2022/01/04/leetcode/414/
发布于
2022年1月4日
许可协议