0
私は、コンソールから取った一連のn個の整数のmサイズのサブアレイの一意の値の最大数を数えます。このコードをさらに最適化する方法はありますか? 、事前にアレックスこれはO(NM)さデキューのユニークな値の最大数を計算する最速の方法
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);
}
}
だけ私は – user1435820
ああ必要な余分なロジックがあるとは思わないので、 'count'変数に格納された最大値は、はい、申し訳ありませんが、適切にコードを読んでいません! –