414. Third Maximum Number
Văn bản bài toán được dịch từ tiếng Nga theo ngôn ngữ giao diện. Mã không thay đổi.
Если задан số nguyên mảng nums, return третье максимальное number в этом mảngе. Если третьего максимального числа не существует, return максимальное number.
Ví dụ:
Input: nums = [3,2,1]
Output: 1
C# lời giải
đã khớp/gốcpublic class Solution {
public int ThirdMax(int[] nums) {
int? first = null;
int? second = null;
int? third = null;
foreach (int num in nums) {
if (num == first || num == second || num == third) {
continue;
}
if (first == null || num > first) {
third = second;
second = first;
first = num;
} else if (second == null || num > second) {
third = second;
second = num;
} else if (third == null || num > third) {
third = num;
}
}
return third ?? first.Value;
}
}
C++ lời giải
bản nháp tự động, xem lại trước khi gửi#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public int ThirdMax(vector<int>& nums) {
int? first = null;
int? second = null;
int? third = null;
foreach (int num in nums) {
if (num == first || num == second || num == third) {
continue;
}
if (first == null || num > first) {
third = second;
second = first;
first = num;
} else if (second == null || num > second) {
third = second;
second = num;
} else if (third == null || num > third) {
third = num;
}
}
return third ?? first.Value;
}
}
Java lời giải
đã khớp/gốcimport java.util.HashSet;
import java.util.Set;
public class Solution {
public int thirdMax(int[] nums) {
Integer first = null;
Integer second = null;
Integer third = null;
for (Integer num : nums) {
if (num.equals(first) || num.equals(second) || num.equals(third)) {
continue;
}
if (first == null || num > first) {
third = second;
second = first;
first = num;
} else if (second == null || num > second) {
third = second;
second = num;
} else if (third == null || num > third) {
third = num;
}
}
return third != null ? third : first;
}
}
JavaScript lời giải
đã khớp/gốcfunction thirdMax(nums) {
let first = null;
let second = null;
let third = null;
for (const num of nums) {
if (num === first || num === second || num === third) {
continue;
}
if (first === null || num > first) {
third = second;
second = first;
first = num;
} else if (second === null || num > second) {
third = second;
second = num;
} else if (third === null || num > third) {
third = num;
}
}
return third !== null ? third : first;
}
Python lời giải
đã khớp/gốcdef thirdMax(nums):
first = second = third = None
for num in nums:
if num in (first, second, third):
continue
if first is None or num > first:
third = second
second = first
first = num
elif second is None or num > second:
third = second
second = num
elif third is None or num > third:
third = num
return third if third is not None else first
Go lời giải
đã khớp/gốcpackage main
import (
"math"
)
func thirdMax(nums []int) int {
first, second, third := math.MinInt64, math.MinInt64, math.MinInt64
for _, num := range nums {
if num == first || num == second || num == third {
continue
}
if num > first {
third = second
second = first
first = num
} else if num > second {
third = second
second = num
} else if num > third {
third = num
}
}
if third == math.MinInt64 {
return first
}
return third
}
Algorithm
Инициализируйте три переменные для хранения первого, второго и третьего максимальных чисел, используя значения None или аналогичные значения.
Пройдитесь по mảngу, обновляя переменные первого, второго и третьего максимальных чисел, избегая дубликатов.
Если третье максимальное number существует, return его. В противном случае, return первое максимальное number.
😎
Vacancies for this task
việc làm đang hoạt động with overlapping task tags are đã hiển thị.
Chưa có việc làm đang hoạt động.