1854. 数组划分III

1854. 数组划分III

中文 English

给你一个整数数组和一个整数K,请你判断数组是否可以划分为若干大小为k序列,并满足以下条件:

  • 数组中的每一个数恰恰出现在一个序列中
  • 一个序列中的数都是互不相同的
  • 数组中相同元素是被划分到不同序列中的

如何可以划分,返回True,否则返回False。

数组长度小于等于10^5。

样例

例1:

input: array=[1,2,3,4], k = 2

output:true

例2:

input: array=[1,2,2,3], k = 3

output:false

 
 
输入测试数据 (每行一个参数) 如何理解测试数据?
class Solution:
    """
    @param array: the input array
    @param k: the sequence length
    @return: if it is possible, return true, otherwise false
    """
    '''
    大致思路:
    1.得到出现最大次数的值,如果最大次数>k的话,则返回False,以及看array是否可以平均分配k长度,如果不可以,返回False。否则True
    '''
    def partitionArratIII(self, array, k):
        dic = {}
        for i in array:
            dic[i] = dic.get(i,0)+1
        
        m = max([v for v in dic.values()])
        if m > len(array)//k:
            return False
        return True

猜你喜欢

转载自www.cnblogs.com/yunxintryyoubest/p/12819504.html