所以每个人都知道初学者有一个任务,你有一个排序数组,你需要找到唯一值的数量.例如,如果int [] sorted = {0, 0, 1, 1, 2, 2},结果是3个唯一值.我在想 - 如果我想对未排序的数组做同样的事情.我知道我可以对它进行排序,让我的生活更轻松 - 但仍然如此.
一个例子:int [] numbers = {2, 7, 3, 2, 3, 7, 7}.我的第一个想法 - 我需要有2个for loops才能找到所有2个实例,而不是7个等等.这就是我怀疑的地方.
正如你可以看到7次重复,我想知道如何确保我不会计算两次.更确切地说 - 我需要某种标志,以表示我之前已经计算过该元素,但我不确定如何将其写下来.
我怎么能接近这个?不一定在代码中,也许只是一点点提示如何做到这一点?
您可以使用Set来获取唯一元素
int [] numbers = {2, 7, 3, 2, 3, 7, 7}
Set<Integer> uniqueValue = new HashSet<>(Arrays.asList(numbers));
Run Code Online (Sandbox Code Playgroud)
如果使用Java 8,甚至更容易
Arrays.stream(number).distinct().toArray();
Run Code Online (Sandbox Code Playgroud)