Python - 最小相同的连续子数组
有时,在使用Python列表或竞争性编程设置时,我们可能会遇到一个子问题,在该子问题中,我们需要获取一个连续出现最少的元素。解决它的知识可以有很大的帮助,并且可以在需要时使用。让我们讨论一下可以执行此任务的某种方式。
使用groupby() + min()
+ lambda
可以使用上述功能的组合来解决此任务。在此,我们使用 groupby() 对每个出现的数字进行分组,并使用 min() 获取它的最小值。 lambda函数提供实用程序逻辑来执行此任务。
# Python3 code to demonstrate working of
# Minimum identical consecutive Subarray
# using groupby() + min() + lambda
from itertools import groupby
# initializing list
test_list = [1, 1, 1, 2, 2, 5, 5, 5, 5]
# printing original list
print("The original list is : " + str(test_list))
# Minimum identical consecutive Subarray
# using groupby() + min() + lambda
temp = groupby(test_list)
res = min(temp, key = lambda sub: len(list(sub[1])))
# printing result
print("Minimum Consecutive identical Occurring number is : " + str(res[0]))
输出 :
The original list is : [1, 1, 1, 2, 2, 5, 5, 5, 5]
Minimum Consecutive identical Occurring number is : 2