zoukankan      html  css  js  c++  java
  • 1523. 分区数组

    1523. 分区数组

    中文English

    给定一个数字数组,您需要检查是否可以将该数组划分为每个长度为k的子序列,例如:

    • 数组中的每个元素仅在一个子序列中出现
    • 子序列中的所有数字都是不同的
    • 数组中具有相同值的元素必须位于不同的子序列中
      是否可以对满足以上条件的数组进行分区? 如果可能,返回true,否则返回false

    样例

    示例1:
    输入:
    A:[1, 2, 3, 4]
    k = 2
    输出: true
    解释:
    那么一种可能的方法是选择数组{1,2}的前2个元素作为第一个子序列,接下来的2个元素{3,4}作为下一个子序列。所以答案是正确的
    
    示例2:
    输入:
    A: [1, 2, 2, 3]
    k: 3
    输出: false
    解释: 没有办法将数组划分为多个子序列,以使所有子序列的长度均为3,并且数组中的每个元素都恰好在一个子序列中出现,因此答案为假。
    
     
     
    输入测试数据 (每行一个参数)如何理解测试数据?
    class Solution:
        """
        @param A: Integer array
        @param k: a integer
        @return: return is possible to partition the array satisfying the above conditions
        """
        '''
        大致思路:
        1.只需要判断是否数组A可以平均切割k个长度的数组,并且需要判断A中最长重复的元素,是否小于分区的数组个数。
        '''
        def PartitioningArray(self, A, k):
            if len(A)%k != 0:
                return  False
            dic = {}
            for i in A:
                dic[i] = dic.get(i,0) + 1
    
            #最长重复元素的个数
            max_l = max_l =  max([j for j in dic.values()]) if A != [] else  0
            if len(A)//k >= max_l:
                return True
            return False
  • 相关阅读:
    k8s二进制部署
    k8s二进制部署
    k8s二进制部署
    k8s二进制部署
    微信小程序 学习笔记5 使用WeUI组件弹出对话框.
    微信小程序 学习笔记4 小程序API调用 wx.login
    微信小程序 学习笔记3 页面跳转
    微信小程序 学习笔记2 button
    微信小程序 学习笔记1 初识
    Python pyautogui 模拟鼠标键盘
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12776223.html
Copyright © 2011-2022 走看看