27. Remove Element
Учитывайте количество elementов в nums, которые не равны val be k. Чтобы вас приняли, вам необходимо сделать следующее:
Измените Array nums так, чтобы первые k elementов nums содержали elementы, не равные val. Остальные elementы nums не важны, как и размер nums.
Вернуть К.
C# Lösung
zugeordnet/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++ Lösung
Auto-Entwurf, vor dem Einreichen prüfen#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ösung
zugeordnet/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 Lösung
zugeordnet/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 Lösung
zugeordnet/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 Lösung
zugeordnet/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
}
Приведенное Erklärung верно для данного метода `RemoveElement`. В данном методе Algorithmus работает следующим образом:
1. Проверяем, что Array `nums` не равен `null` и его длина не равна 0. Если это так, возвращаем 0.
2. Создаем переменную `i`, которая будет отслеживать позицию для вставки уникальных elementов без значения `val`.
3. Запускаем цикл `for` для перебора всех elementов Arrayа `nums` с помощью индекса `j`.
4. В цикле проверяем, если текущий element `nums[j]` равен значению `val`, увеличиваем индекс `j`, пока не найдем следующий element, отличный от `val` или не достигнем конца Arrayа.
5. Когда найден уникальный element (не равный `val`), копируем его в Array на позицию `i` и увеличиваем `i`.
6. В конце метод returns значение `i`, которое представляет новую длину Arrayа после удаления всех elementов со значением `val`.
Этот метод позволяет удалять все экземпляры указанного значения из Arrayа, сохраняя порядок оставшихся elementов. Он эффективно обрабатывает случаи, когда нужно удалить конкретное значение из Arrayа и вернуть новую длину Arrayа после удаления.
Stellen zu dieser Aufgabe
aktive Stellen with overlapping task tags are angezeigt.