【问题标题】:numbers not divisible by all array elements不能被所有数组元素整除的数字
【发布时间】:2017-12-21 01:40:00
【问题描述】:

给定一个包含 3 个元素的数组:- 2,4,5 并给定一个数字 n = 10 查找 1 到 n 范围内的所有数字的计数,这些数字不能被所有数组元素的倍数整除。

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

有没有更好的暴力破解方法? n 在 1 到 10^9 的范围内

【问题讨论】:

    标签: arrays range-query


    【解决方案1】:

    取一个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());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 2018-04-10
      • 2021-10-13
      • 1970-01-01
      • 2023-04-10
      • 2012-06-18
      • 1970-01-01
      相关资源
      最近更新 更多