【发布时间】:2018-10-13 04:02:50
【问题描述】:
总的来说,我知道我们必须查看源代码才能了解代码的性能。
但更具体地说,此代码在竞争性编程网站中超时。
这会查找流中从0 到100 的数字出现的频率。
数组中的数字介于0 和100 之间。
// Times out with int[] array containing 100000 elements.
List<Integer> l = new ArrayList<>();
for( int i = 0 ; i < array.length ; i ++){
l.add(array[i]);
}
int[] counts = new int[100];
Arrays.stream(array).forEach( i -> counts[i] = Collections.frequency( l, i));
此代码的 Big-O 分析是什么?我认为罪魁祸首是我使用 Streams API 的方式。
【问题讨论】:
标签: java java-stream complexity-theory