赞
踩
要删除升序数组里边的重复项,重复的元素一定是相邻的,只需要将元素和后一个元素比较。
删除重复元素==将不重复的元素移到数组的左边。
使用双指针p,q,p在前,q在后。
①比较p和q位置的元素是否相等。
②如果相等,q后移一位。如果不相等,将q位置的元素复制到p+1位置上,p后移一位,q后移一位。
③重复上述,直到q到达数组的尾端。
返回p+1.
把不重复的元素都放在前边。
public int removeDuplicates(int[] nums) {
if(nums == null || nums.length == 0) return 0;
int p = 0;
int q = 1;
while(q < nums.length){
if(nums[p] != nums[q]){
nums[p + 1] = nums[q];
p++;
}
q++;
}
return p + 1;
}
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。