1. 解题思路
这一题其实想想清楚的话还是挺直接的,显然,要能够成功分组,总的元素个数显然必须是 k k k的倍数。
然后,我们只需要看重复频率最多的元素出现的次数 m m m,如果 m × k > n m\times k > n m×k>n,那么显然也无法将其成功分组。但是,反之,如果 m × k ≥ n m\times k \geq n m×k≥n,那么,我们不难证明,分组总是可以实现的。
2. 代码实现
给出python代码实现如下:
class Solution:
def partitionArray(self, nums: List[int], k: int) -> bool:
n = len(nums)
if n % k != 0:
return False
cnt = Counter(nums)
m = max(cnt.values())
return m * k <= n
提交代码评测得到:耗时46ms,占用内存35.80MB。

被折叠的 条评论
为什么被折叠?



