在Python中将数组划分为增加的序列
假设我们有一个非递减的正整数数组,称为nums和整数K,我们必须找出该数组是否可以划分为一个或多个长度不小于K的不相交的递增子序列。
因此,如果输入像nums=[1,2,2,3,3,4,4],K=3,那么输出将为true,因为此数组可以分为两个子序列,例如[1,2,3,4]和[2,3,4]各自的长度至少为3。
为了解决这个问题,我们将遵循以下步骤-
d:=新映射
要求:=0
对于每个以数字表示的i
d[i]:=d[i]+1
d[i]:=1
如果我不在d中为非零,则
除此以外,
req:=req的最大值,d[i]
当req*K<=nums的大小时返回true
让我们看下面的实现以更好地理解-
示例
class Solution(object):
def canDivideIntoSubsequences(self, nums, K):
d = {}
req = 0
for i in nums:
if i not in d:
d[i]=1
else:
d[i]+=1
req = max(req,d[i])
return req*K<=len(nums)
ob = Solution()print(ob.canDivideIntoSubsequences([1,2,2,3,3,4,4],3))输入值
[1,2,2,3,3,4,4]. 3
输出结果
True
热门推荐
10 同学贺卡励志祝福语简短
11 经典新婚祝福语简短英文
12 祝福语简短独特教官
13 绝美老师花束祝福语简短
14 岳母生日贺卡祝福语简短
15 升学祝福语简短100个
16 三八祝福语简短文案
17 大学除夕祝福语简短英文
18 经典座右铭简短祝福语英文