27. Remove Element

LeetCode easy original: C# #array #csharp #easy #leetcode
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.
given số nguyên mảng nums и целочисленное значение, удалите все вхождения val в nums на месте. Порядок elementов может быть изменен. Затем return количество elementов в виде чисел, которые не равны val.

Учитывайте количество elementов в nums, которые не равны val be k. Чтобы вас приняли, вам необходимо сделать следующее:

Измените mảng nums так, чтобы первые k elementов nums содержали elementы, не равные val. Остальные elementы nums не важны, как и размер nums.
Вернуть К.

C# lời giải

đã khớp/gốc
public class Solution {
    public int RemoveElement(int[] nums, int val) {
        if (nums == null || nums.Length == 0)
            return 0;
        
        int i = 0;
        
        for (int j = 0; j < nums.Length; j++)
        {
            while (j < nums.Length && nums[j] == val)
                j++;
            
            if (j < nums.Length)
                nums[i++] = nums[j];
        }
        
        return i;
    }
}

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 RemoveElement(vector<int>& nums, int val) {
        if (nums == null || nums.size() == 0)
            return 0;
        
        int i = 0;
        
        for (int j = 0; j < nums.size(); j++)
        {
            while (j < nums.size() && nums[j] == val)
                j++;
            
            if (j < nums.size())
                nums[i++] = nums[j];
        }
        
        return i;
    }
}

Java lời giải

đã khớp/gốc
class Solution {
    public int removeElement(int[] nums, int val) {
        
        int left_most_index = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[left_most_index++] = nums[i];
            }
        }
        return left_most_index;        
    }
}

JavaScript lời giải

đã khớp/gốc
/**
 * @param {number[]} nums
 * @param {number} val
 * @return {number}
 */
var removeElement = function (nums, val) {
    let k = 0;
    for (const x of nums) {
        if (x !== val) {
            nums[k++] = x;
        }
    }
    return k;
};

Python lời giải

đã khớp/gốc
class Solution:  
    def removeElement(self, nums: List[int], val: int) -> int:  
        k = 0  

        for i in range(len(nums)):  
            if nums[i] != val:  
                nums[k] = nums[i]  
                k += 1  

        return k

Go lời giải

đã khớp/gốc
func removeElement(nums []int, val int) int {
    j := 0
    for i := 0; i < len(nums); i++ {
        if nums[i] != val {
            nums[j] = nums[i]
            j++
        }
    }
    return j
}

Приведенное Giải thích верно для данного метода `RemoveElement`. В данном методе Thuật toán работает следующим образом:

1. Проверяем, что mảng `nums` не равен `null` и его длина не равна 0. Если это так, возвращаем 0.

2. Создаем переменную `i`, которая будет отслеживать позицию для вставки уникальных elementов без значения `val`.

3. Запускаем цикл `for` для перебора всех elementов mảngа `nums` с помощью индекса `j`.

4. В цикле проверяем, если текущий element `nums[j]` равен значению `val`, увеличиваем индекс `j`, пока не найдем следующий element, отличный от `val` или не достигнем конца mảngа.

5. Когда найден уникальный element (не равный `val`), копируем его в mảng на позицию `i` и увеличиваем `i`.

6. В конце метод returns значение `i`, которое представляет новую длину mảngа после удаления всех elementов со значением `val`.

Этот метод позволяет удалять все экземпляры указанного значения из mảngа, сохраняя порядок оставшихся elementов. Он эффективно обрабатывает случаи, когда нужно удалить конкретное значение из mảngа и вернуть новую длину mảngа после удаления.

Vacancies for this task

việc làm đang hoạt động with overlapping task tags are đã hiển thị.

Tất cả việc làm
Chưa có việc làm đang hoạt động.