LeetCode 27. 移除元素 - 力扣
题目描述
解题思路
方法一
用count记录数组中等于val的元素个数,如果nums[i]==val,则count++;
如果nums[i] != val,则用nums[i]覆盖nums[i-count]。
class Solution {
public int removeElement(int[] nums, int val) {
int count = 0;
for(int i = 0; i < nums.length; i ++){
if(nums[i] == val){
count ++;
}else{
nums[i-count] = nums[i];
}
}
return nums.length - count;
}
}
方法二
用slow表示更新数组的下标。
当nums[i] != val时,更新nums[slow] = nums[i],并且slow++。
class Solution {
public int removeElement(int[] nums, int val) {
int slow = 0;
for(int i = 0; i < nums.length; i ++){
if(nums[i] != val){
nums[slow++] = nums[i];
}
}
return slow;
}
}