LC每日一题|20240518 - 2644. 找出可整除性得分最大的整数

54 阅读1分钟

LC每日一题|20240518 - 2644. 找出可整除性得分最大的整数

给你两个下标从 0 开始的整数数组 numsdivisors

divisors[i]可整除性得分 等于满足 nums[j] 能被 divisors[i] 整除的下标 j 的数量。

返回 可整除性得分 最大的整数 divisors[i] 。如果有多个整数具有最大得分,则返回数值最小的一个。

提示:

  • 1 <= nums.length, divisors.length <= 1000
  • 1 <= nums[i], divisors[i] <= 10^9

题目等级:Easy

解题思路

很简单的一道遍历题,无需解释~

AC代码

class Solution {
    fun maxDivScore(nums: IntArray, divisors: IntArray): Int {
        var res = Int.MAX_VALUE
        var count = 0
        divisors.forEach { d -> 
            var cnt = 0
            nums.forEach { n ->
                if (n % d == 0) cnt++
            }
            if (cnt == count) res = Math.min(res, d)
            if (cnt > count) {
                count = cnt
                res = d
            }
        }
        return res
    }
}

时间复杂度:O(mn)

空间复杂度:O(1)