268. Missing Number

LeetCode easy original: C# #array #csharp #easy #leetcode #sort
Il testo del problema è tradotto dal russo per la lingua selezionata. Il codice resta invariato.

Дан array nums, содержащий n различных чисел в диапазоне [0, n]. return единственное number в этом диапазоне, которого нет в arrayе.

Esempio:

Input: nums = [3,0,1]

Output: 2

Explanation: n = 3 since there are 3 numbers, so all numbers are in the range [0,3]. 2 is the missing number in the range since it does not appear in nums.

C# soluzione

abbinato/originale
public class Solution {
    public int MissingNumber(int[] nums) {
        Array.Sort(nums);
        if (nums[nums.Length - 1] != nums.Length) {
            return nums.Length;
        } else if (nums[0] != 0) {
            return 0;
        }
        for (int i = 1; i < nums.Length; i++) {
            int expectedNum = nums[i - 1] + 1;
            if (nums[i] != expectedNum) {
                return expectedNum;
            }
        }
        return -1;
    }
}

C++ soluzione

bozza automatica, rivedere prima dell'invio
#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 MissingNumber(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        if (nums[nums.size() - 1] != nums.size()) {
            return nums.size();
        } else if (nums[0] != 0) {
            return 0;
        }
        for (int i = 1; i < nums.size(); i++) {
            int expectedNum = nums[i - 1] + 1;
            if (nums[i] != expectedNum) {
                return expectedNum;
            }
        }
        return -1;
    }
}

Java soluzione

abbinato/originale
class Solution {
    public int missingNumber(int[] nums) {
        Arrays.sort(nums);
        if (nums[nums.length-1] != nums.length) {
            return nums.length;
        } else if (nums[0] != 0) {
            return 0;
        }
        for (int i = 1; i < nums.length; i++) {
            int expectedNum = nums[i-1] + 1;
            if (nums[i] != expectedNum) {
                return expectedNum;
            }
        }
        return -1;
    }
}

JavaScript soluzione

abbinato/originale
var missingNumber = function(nums) {
    nums.sort((a, b) => a - b)
    if (nums[nums.length - 1] != nums.length) {
        return nums.length
    } else if (nums[0] != 0) {
        return 0
    }
    for (let i = 1; i < nums.length; i++) {
        let expectedNum = nums[i - 1] + 1
        if (nums[i] != expectedNum) {
            return expectedNum
        }
    }
    return -1
}

Python soluzione

abbinato/originale
class Solution:
    def missingNumber(self, nums):
        nums.sort()
        if nums[-1] != len(nums):
            return len(nums)
        elif nums[0] != 0:
            return 0
        for i in range(1, len(nums)):
            expected_num = nums[i - 1] + 1
            if nums[i] != expected_num:
                return expected_num
        return -1

Go soluzione

abbinato/originale
func missingNumber(nums []int) int {
    sort.Ints(nums)
    if nums[len(nums)-1] != len(nums) {
        return len(nums)
    } else if nums[0] != 0 {
        return 0
    }
    for i := 1; i < len(nums); i++ {
        expectedNum := nums[i-1] + 1
        if nums[i] != expectedNum {
            return expectedNum
        }
    }
    return -1
}

Algorithm

1️⃣

Сначала отсортируйте array nums.

2️⃣

Проверьте особые случаи: убедитесь, что number 0 находится в начале arrayа, а number n — в конце.

3️⃣

Пройдитесь по отсортированному arrayу и для каждого индекса проверьте, что number на этом индексе соответствует ожидаемому (предыдущее number плюс один). Как только вы обнаружите несоответствие, return ожидаемое number.

😎

Vacancies for this task

offerte attive with overlapping task tags are mostrati.

Tutte le offerte
Non ci sono ancora offerte attive.