【发布时间】:2016-06-11 12:29:27
【问题描述】:
我正在尝试找到最快的方法来计算从控制台获取的一系列 n 个整数的 m 大小子数组中唯一值的最大数量。有没有办法进一步优化这段代码?提前致谢,亚历克斯
import java.util.*;
public class test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Deque deque = new ArrayDeque<>();
int n = in.nextInt();
int m = in.nextInt();
long count = 0, c = 0;
for (int i = 0; i < m; i++) deque.addFirst(in.nextInt());
count = deque.stream().distinct().count();
for (int i = 0; i < n - m; i++) {
count = Math.max(count, deque.stream().distinct().count());
deque.removeLast();
deque.addFirst(in.nextInt());
}
System.out.println(count);
}
}
【问题讨论】:
-
只有最大值存储在
count变量中,所以我认为不需要任何额外的逻辑 -
啊,是的,对不起,没有正确阅读代码!
标签: java optimization count unique deque