27. Remove Element
Учитывайте количество elementов в nums, которые не равны val be k. Чтобы вас приняли, вам необходимо сделать следующее:
Измените arreglo nums так, чтобы первые k elementов nums содержали elementы, не равные val. Остальные elementы nums не важны, как и размер nums.
Вернуть К.
C# solución
coincidente/originalpublic 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++ solución
borrador 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 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 solución
coincidente/originalclass 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 solución
coincidente/original/**
* @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 solución
coincidente/originalclass 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 solución
coincidente/originalfunc 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
}
Приведенное Explicación верно для данного метода `RemoveElement`. В данном методе Algoritmo работает следующим образом:
1. Проверяем, что arreglo `nums` не равен `null` и его длина не равна 0. Если это так, возвращаем 0.
2. Создаем переменную `i`, которая будет отслеживать позицию для вставки уникальных elementов без значения `val`.
3. Запускаем цикл `for` для перебора всех elementов arregloа `nums` с помощью индекса `j`.
4. В цикле проверяем, если текущий element `nums[j]` равен значению `val`, увеличиваем индекс `j`, пока не найдем следующий element, отличный от `val` или не достигнем конца arregloа.
5. Когда найден уникальный element (не равный `val`), копируем его в arreglo на позицию `i` и увеличиваем `i`.
6. В конце метод returns значение `i`, которое представляет новую длину arregloа после удаления всех elementов со значением `val`.
Этот метод позволяет удалять все экземпляры указанного значения из arregloа, сохраняя порядок оставшихся elementов. Он эффективно обрабатывает случаи, когда нужно удалить конкретное значение из arregloа и вернуть новую длину arregloа после удаления.
Vacantes para esta tarea
Se muestran vacantes activas con etiquetas coincidentes.