26-删除重复的元素:
快慢指针
一个负责遍历,一个负责存储;
int i=0;
for(int j=1;j<nums.length;j++){
if(nums[i]!=nums[j]){
nums[i+1]=nums[j];
i++;
}
}
return i+1;
27删除数组val元素;
**用双指针法或者快慢指针的方法: 一个负责遍历,一个负责存储
快慢指针:
int i=0;
for(int j=0;j<nums.length;j++){
if(nums[j]!=val){
nums[i]=nums[j];
i++;
}
}
return i;
双指针:
class Solution {
public int removeElement(int[] nums, int val) {
if(nums.length==0){
return 0;
}
int i=0;
int j=nums.length-1;
while(i<j){
while(i<j&&nums[i]!=val){
i++;
}
while(i<j&&nums[j]==val){
j--;
}
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
return nums[i] == val ? i:i+1;
}
}
283移动零元素在末尾补零即可
for(;i<nums.length;i++){
nums[i]=0;