主要是采用双指针算法来剔除重复的元素
/**
* 有序数组排除重复的元素,并且返回数组的新长度
*/
public class OrderedArrayRemoveDuplicateDataTest {
public static void main(String[] args) {
int[] datas = {1,2,3,3,4,4,5,5,5};
System.out.println(removeDuplicateDatas(datas));
}
/**
* 采用双指针算法来剔除重复的数据
* @param orderedArray
* @return
*/
public static int removeDuplicateDatas(int[] orderedArray){
int i=0;
for(int j=1,n=orderedArray.length;j<n;j++){
if(orderedArray[i]!=orderedArray[j]){
i++;
orderedArray[i]=orderedArray[j];
}
}
return i+1;
}
}