27.移除元素
方法一:暴力法:
class Solution {
public int removeElement(int[] nums, int val) {
int n = nums.length;
for(int i = 0;i< n; i++){
if(nums[i] == val){
for(int j = i+1;j<n;j++){
nums[j-1] = nums[j];
}
i--;
n--;
}
}
return n;
}
}
方法二:双指针法(快慢指针法)
class Solution {
public int removeElement(int[] nums, int val) {
int n = nums.length;
int left = 0;
for (int right = 0; right < n; right++) {
if (nums[right] != val) {
nums[left] = nums[right];
left++;
}
}
return left;
}
}
方法三:双指针法优化
class Solution {
public int removeElement(int[] nums, int val) {
int left = 0;
int right = nums.length;
while(left < right){
if(nums[left] == val){
nums[left] = nums [right-1];
right--;
}else{
left++;
}
}
return left;
}
}