Python程序找出大于给定值的集合数
假设,我们有一个包含多个整数的数组。我们从给定的数字数组中找出所有连续的子数组,并将其放入另一个列表中。现在,我们用该子数组中的最大元素替换每个子数组。还有一个数字k给了我们,我们必须找出现在有多少子数组大于给定的数字。
因此,如果输入类似于input_array=[5,6,7,8],k=7,那么输出将是4
来自给定输入数组的连续子数组是:{5}、{6}、{7}、{8}、{5,6}、{6,7}、{7,8}、{5,6,7},{6,7,8},{5,6,7,8}
如果我们使用其中的最大元素更新子数组,则子数组变为-
{5}、{6}、{7}、{8}、{6}、{7}、{8}、{7}、{8}、{8}。
元素大于7的集合有4个。
为了解决这个问题,我们将按照以下步骤操作-
计数:=0
连续:=0
对于input_array中的每个x,执行
连续:=连续+1
计数:=计数+连续
连续:=0
如果x>k,则
否则,
返回input_array的大小*((input_array的大小+1)/2)的下限值-计数
示例
让我们看看以下实现以获得更好的理解-
def solve(input_array, k): count = 0 consecutive = 0 for x in input_array: if x > k: consecutive = 0 else: consecutive += 1 count += consecutive return len(input_array) * (len(input_array) + 1) //2-计数 print(solve([5, 6, 7, 8], 7))
输入
[5, 6, 7, 8], 7输出结果
4