1133. Largest Unique Number

LeetCode easy original: C# #array #csharp #easy #hash-table #leetcode #math
Le texte du problème est traduit du russe pour la langue sélectionnée. Le code reste inchangé.

Вам Дан entier tableau nums, return наибольшее entier, которое встречается только один раз. Если ни одно entier не встречается один раз, return -1.

Exemple:

Input: nums = [5,7,3,9,4,9,8,3,1]

Output: 8

Explanation: The maximum integer in the array is 9 but it is repeated. The number 8 occurs only once, so it is the answer.

C# solution

correspondant/original
public class Solution {
    public int LargestUniqueNumber(int[] nums) {
        Dictionary<int, int> count = new Dictionary<int, int>();
        
        foreach (int num in nums) {
            if (count.ContainsKey(num)) {
                count[num]++;
            } else {
                count[num] = 1;
            }
        }
        
        int result = -1;
        foreach (var entry in count) {
            if (entry.Value == 1) {
                result = Math.Max(result, entry.Key);
            }
        }
        
        return result;
    }
}

C++ solution

brouillon automatique, à relire avant soumission
#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 LargestUniqueNumber(vector<int>& nums) {
        unordered_map<int, int> count = new unordered_map<int, int>();
        
        foreach (int num in nums) {
            if (count.count(num)) {
                count[num]++;
            } else {
                count[num] = 1;
            }
        }
        
        int result = -1;
        foreach (var entry in count) {
            if (entry.Value == 1) {
                result = max(result, entry.Key);
            }
        }
        
        return result;
    }
}

Java solution

correspondant/original
class Solution {
public int largestUniqueNumber(int[] A) {
        Map<Integer, Integer> count = new HashMap<Integer, Integer>();
        for (int i : A) {
          count.put(i, count.getOrDefault(i, 0) + 1);
        }
        int result = -1;
        for (Map.Entry<Integer, Integer> entry : count.entrySet()) {
            if (entry.getValue() == 1) {
              result = Math.max(result, entry.getKey());
            }
        }
        return result;
    }
}

Algorithm

Создайте хеш-таблицу для хранения количества каждого числа в tableauе.

Пройдите по tableauу и заполните хеш-таблицу количеством каждого числа.

Инициализируйте результат значением -1. Пройдите по хеш-таблице и если значение ключа равно 1, установите результат равным максимальному значению между ключом и текущим результатом. return результат.

😎

Vacancies for this task

offres actives with overlapping task tags are affichés.

Toutes les offres
Il n'y a pas encore d'offres actives.