所有数组元素都不能排除数字



给定3个元素的数组:-2,4,5并给出一个数字n = 10查找范围1至n中所有数字的计数,这些数字不可能由所有数组元素中的多个可换取。

输出:-4(1,3,7,9)

有更好的方法蛮力吗?n在1至10^9

的范围内

取一个标签,将数组的所有倍数少于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());

最新更新