在Python中将列表拆分为严格递增的子列表,其大小大于k的程序
假设我们有一个名为nums的数字列表和另一个值k,我们必须检查是否可能将列表拆分为子列表列表,使得每个子列表的长度≥ k且严格递增。 列表不需要连续拆分。
因此,如果输入如下nums = [6, 7, 5, 10, 13] k = 2,则输出将是True,因为拆分是[5, 6]和[7, 10, 13]。
为了解决这个问题,我们将遵循以下步骤−
- c:包含nums及其计数的元素的映射
- max_count:c的所有频率中的最大值
- 如果max_count * k <= nums的大小,则返回True,否则返回false
示例(Python)
让我们看看以下实现,以更好地理解−
from collections import Counter
class Solution:
def solve(self, nums, k):
c = Counter(nums)
max_count = max([v for k, v in c.items()])
return max_count * k <= len(nums)
ob = Solution()
nums = [6, 7, 5, 10, 13]
k = 2
print(ob.solve(nums, k))
输入
[6, 7, 5, 10, 13],2
输出
False