删除元素
原地移除所有数值等于val的元素
LeetCode27
public int removeElement(int[] nums, int val){
int j=0;
for (int i = 0; i < nums.length; i++) {
if(nums[i] !=val){
nums[j] =nums[i];
j++;
}
}
return j;
}
删除有序数组中的重复项
LeetCode 26
public int removeDuplicates(int[] nums){
//slow表示可以放入新元素的位置,索引为0的元素不用管
int slow=1;
for (int i = 0; i < nums.length; i++) {
if(nums[i] !=nums[slow-1]){
nums[slow]=nums[i];
slow++;
}
}
return slow;
}
删除有序数组中的重复项 II
LeetCode 80
public int removeDuplicates(int[] nums) {
int n = nums.length;
if (n <= 2) {
return n;
}
int slow = 2, fast = 2;
while (fast < n) {
if (nums[slow - 2] != nums[fast]) {
nums[slow] = nums[fast];
slow++;
}
fast++;
}
return slow;
}