解法1:使用k指针存储不重复的元素
class Solution {
public int removeDuplicates(int[] nums) {
int k=0;
for(int i=1;i<nums.length;i++){
//如果值不相等,就指针指向下一个,并把nums[i]值赋给它
if(nums[i]!=nums[k]){
k++;
nums[k]=nums[i];
}
}
return k+1;
}
}
解法2:使用LinkedHashSet
class Solution {
public int removeDuplicates(int[] nums) {
LinkedHashSet<Integer> set=new LinkedHashSet<Integer>();
for(int i=0;i<nums.length;i++){
if(!set.contains(nums[i]))
set.add(nums[i]);
}
int i=0;
Iterator it = set.iterator();
while(it.hasNext()){
nums[i]=(Integer)it.next();
i++;
}
return set.size();
}
}
网友评论