且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

面试题:统计一个数组中不重复出现的元素个数

更新时间:2021-08-09 11:51:25

假设是一个整数数组,事先已经按照升序或者降序拍好次序,但是数组中的若干元素重复出现。给出代码要求统计该数组中不重复出现的元素个数。例如整数数组:

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));
	}
}