415. Add Strings
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: num1 = "11", num2 = "123"
Output: "134"
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;
}
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
Инициализируйте три переменные для хранения первого, второго и третьего максимальных чисел.
Пройдите по mảngу nums, обновляя переменные первого, второго и третьего максимальных чисел, избегая дубликатов.
return третье максимальное number, если оно существует, иначе 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.