📅  最后修改于: 2023-12-03 14:57:33.892000             🧑  作者: Mango
这个问题可以用一个简单的循环来解决,我们可以遍历所有的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代码,如果有其他语言的程序员需要实现类似的功能,也可以根据上述思路进行实现。