给出3个元素的数组: - 2,4,5 给出数n = 10 查找1到n范围内的所有数字的计数,这些数字是所有数组元素的多个不可见的。
输出: - 4 (1,3,7,9)
任何更好的方法蛮力? n在1至10 ^ 9的范围内
答案 0 :(得分:0)
取一个hashset并将arrayElements的所有倍数小于n并减去设置大小。
int n = 10;
int k = 3;
int[] jump = { 2, 5, 4 };
Set<Integer> jumpSet = new HashSet<Integer>();
for (int i = 0; i < jump.length; i++) {
if (!jumpSet.contains(jump[i])) {
for (int j = 1; j <= n / jump[i]; j++)
jumpSet.add(jump[i] * j);
}
}
System.out.println(n - jumpSet.size());