27. Remove Element
Given an array nums and a value val, remove all instances of that value in-place and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
The order of elements can be changed. It doesn’t matter what you leave beyond the new length.
Example 1:
Given nums = [3,2,2,3], val = 3,
Your function should return length = 2, with the first two elements of nums being 2.
It doesn’t matter what you leave beyond the returned length.
解题方法
这道题让我们移除一个数组中和给定值相同的数字,并返回新的数组的长度。是一道比较容易的题,我们只需要一个变量用来计数,然后遍历原数组,如果当前的值和给定值不同,我们就把当前值覆盖计数变量的位置,并将计数变量加1。代码如下
class Solution {
public int removeElement(int[] nums, int val) {
int len=0;
for(int j=0;j<nums.length;j++){
if(nums[j]!=val){
nums[len]=nums[j];
len++;
}
}
return len;
}
}
运行结果

本文详细解析了LeetCode上的第27题Remove Element,介绍了一种有效的原地删除数组中特定元素的方法,通过一个计数变量遍历并修改输入数组,实现O(1)额外内存消耗。

1592

被折叠的 条评论
为什么被折叠?



