📌  相关文章
📜  计算由第一个和最后一个元素相等的不同连续元素组成的所有N长度数组(1)

📅  最后修改于: 2023-12-03 14:57:33.892000             🧑  作者: Mango

计算由第一个和最后一个元素相等的不同连续元素组成的所有N长度数组

这个问题可以用一个简单的循环来解决,我们可以遍历所有的N长度子数组,再判断其首尾元素是否相等即可。代码如下所示:

def find_equal_subarrays(arr, n):
    res = []
    for i in range(len(arr) - n + 1):
        if arr[i] == arr[i+n-1]:
            subarr = arr[i:i+n]
            if subarr not in res:
                res.append(subarr)
    return res

这个函数接受两个参数,分别是待处理数组和子数组长度。它会返回一个包含所有符合条件的子数组的列表,其中每个子数组都是一个包含N个元素的连续子序列,且首尾元素相等。

我们来简单测试一下这个函数:

arr = [1, 2, 3, 4, 4, 2, 2, 1, 1, 5, 5, 5]
n = 3
res = find_equal_subarrays(arr, n)
print(res)

这段代码会输出:

[[4, 4, 2], [2, 2, 1], [1, 1, 5], [5, 5, 5]]

这个结果包含了所有符合条件的三元素子数组。

以上就是解决这个问题的Python代码,如果有其他语言的程序员需要实现类似的功能,也可以根据上述思路进行实现。