假设是一个整数数组,事先已经按照升序或者降序拍好次序,但是数组中的若干元素重复出现。给出代码要求统计该数组中不重复出现的元素个数。例如整数数组:
int[] array=new int[]{1,1,1,1,2,3};
正确的计算结果应该为:3。因为前四个元素均为“1”,计数则只算为一个不重复出现的元素。
给出完整代码(Java实现):
public class Test {
public int count(int[] array) {
int len = array.length;
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
int num = array[i];
if (array[j] == num) {
// 重复,数组总长度减1
len--;
i++;
}
}
}
return len;
}
public static void main(String[] args) {
// 测试数据:总共是9个不同的元素,按照升序排好,其中有重复出现的元素。
int[] array = new int[] { 1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9 };
System.out.println(new Test().count(array));
}
}