计算已排序的数组中不重复的元素个数(重复的元素仅统计1次)
问题描述:计算已排序的整形数组的元素个数,重复出现的元素仅统计1次。
例如:给定一个整形数组
int[] arrayDemo = {1,1,2,2,3,5,5,5};
由于 元素 1 和元素 2,5 都重复出现过,分别仅计数1次。所以数组的元素个数为 4。
算法设计:
package com.bean.algorithmbasic;
public class RemoveDuplicatesFromSortedArrays {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arrayDemo = {1,1,2,2,3,5,5,5};
int newLength=removeDuplicatesElements(arrayDemo);
System.out.println("NEW LENGTH OF ARRAYDEMO IS: "+newLength);
}
public static int removeDuplicatesElements(int[] arrayDemo) {
//如果数组长度为0,即不包含任何元素,则返回0
if (arrayDemo.length == 0) return 0;
int i = 0;
for (int j = 1; j < arrayDemo.length; j++) {
if (arrayDemo[j] != arrayDemo[i]) {
i++;
arrayDemo[i] = arrayDemo[j];
}
}
return i + 1;
}
}
(完)