415. Add Strings

LeetCode easy original: C# #array #csharp #easy #leetcode #string
O texto da tarefa é traduzido do russo para o idioma selecionado. O código permanece sem alterações.

Если задан inteiro array nums, return третье максимальное number в этом arrayе. Если третьего максимального числа не существует, return максимальное number.

Exemplo:

Input: num1 = "11", num2 = "123"

Output: "134"

C# solução

correspondente/original
public 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++ solução

rascunho automático, revisar antes de enviar
#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 solução

correspondente/original
import 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 solução

correspondente/original
function 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 solução

correspondente/original
package 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

Инициализируйте три переменные для хранения первого, второго и третьего максимальных чисел.

Пройдите по arrayу nums, обновляя переменные первого, второго и третьего максимальных чисел, избегая дубликатов.

return третье максимальное number, если оно существует, иначе return первое максимальное number.

😎

Vacancies for this task

vagas ativas with overlapping task tags are mostradas.

Todas as vagas
Ainda não há vagas ativas.